我能得到我的烧瓶应用程序作为服务运行感谢是否有可能在windows中运行Python脚本作为服务? 如果可能,如何? ,但是当谈到阻止它,我不能。 我必须在任务pipe理器中终止进程。
这里是我的run.py,我通过run.py install变成一个服务:
from app import app from multiprocessing import Process import win32serviceutil import win32service import win32event import servicemanager import socket class AppServerSvc (win32serviceutil.ServiceFramework): _svc_name_ = \”CCApp\” _svc_display_name_ = \”CC App\” def __init__(self,args): win32serviceutil.ServiceFramework.__init__(self,args) self.hWaitStop = win32event.CreateEvent(None,None) socket.setdefaulttimeout(60) def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_Stop_PENDING) win32event.SetEvent(self.hWaitStop) server.terminate() server.join() def SvcDoRun(self): servicemanager.LogMsg(servicemanager.EVENTLOG_informatION_TYPE,servicemanager.PYS_SERVICE_STARTED,(self._svc_name_,\’\’)) self.main() def main(self): server = Process(app.run(host = \’192.168.1.6\’)) server.start() if __name__ == \’__main__\’: win32serviceutil.HandleCommandline(AppServerSvc)
我从这个post得到了这个过程的东西: http : //libreList.com/browser/flask/2011/1/10/start-stop-flask/#a235e60dcaebaa1e134271e029f801fe,但不幸的是它也不起作用。
事件查看器中的日志文件说全局variables“服务器”没有定义。 但是,我已经使服务器的全局variables,它仍然给我同样的错误。
:: FinDWindow从服务应用程序失败
Bitnami GitLab 5.2.0:gitlab_sIDekiq没有运行,无法启动
windows Azure,如何清除文件夹DevFCLogs?
如何基于代理响应有条件地在Nginx中提供静态文件?
设置我的Java应用程序为windows服务
是否有程序化的方式来检测过程是否可以与桌面交互
将jar作为linux服务运行 – init.d脚本被启动应用程序卡住了
运行java应用程序作为后台进程
WorkbookOpen事件与windows服务没有触发,而它与windows应用程序触发
golang程序不能在windows服务上运行
我建议你使用http://supervisord.org/ 。 其实在windows中不能工作,但是在Cygwin中,你可以像在linux中一样运行管理程序,包括作为服务运行。
安装Supervisord: https : //stackoverflow.com/a/18032347/3380763
安装后,你必须配置应用程序,这里的一个例子: http : //flaviusim.com/blog/deploying-Flask-with-Nginx-uWsgi-and-Supervisor/ (没有必要使用Nginx的监督员的配置是足够的)
停止Win32服务器之前,可以正常停止Werkzeug Web服务器。 例:
from flask import request def shutdown_server(): func = request.environ.get(\’werkzeug.server.shutdown\’) if func is None: raise RuntimeError(\’Not running with the Werkzeug server\’) func() @app.route(\’/shutdown\’,methods=[\’POST\’]) def shutdown(): shutdown_server() return \’server shutting down…\’
如果将此添加到您的Flask服务器,则可以通过向/shutdown发送POST请求来请求正常的服务器/shutdown 。 您可以使用请求或urllib2来做到这一点。 根据您的情况,您可能需要保护此路线免受未经授权的访问。
一旦服务器停止,我想你将不得不停止Win32服务。
请注意,上面的关机代码出现在这个Flask代码片段中 。
总结
以上是内存溢出为你收集整理的如何终止作为服务运行的应用程序?全部内容,希望文章能够帮你解决如何终止作为服务运行的应用程序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容