Python 自启动&监听进程 服务

本文介绍了如何使用Python创建自启动服务,并实现进程监听。通过一个服务来确保指定的Python程序始终运行,当进程未运行时自动启动。文中提到了服务安装命令以及监听进程的代码实现,该代码通过HTTP连接来判断进程状态,避免了因socket连接阻塞导致的问题。
摘要由CSDN通过智能技术生成
目标:
最近用python bottle写了一些api,但是阿里的服务器有时候会自动重启,导致api挂掉,所以有了写一个自启动服务的打算。
想法:
因为以前写的自启动和保护服务都是用C++写的服务,由于换了公司,电脑上也没有了vs,懒得装,查了下资料,发现python也能写成服务,就打算用python实现。

正题:

一:python实现服务
需要安装pywin32,因为我用的是python2.7,就下了pywin32-218.win-amd64-py2.7.exe,下载安装请百度。以下是服务整体的代码:

class PythonService(win32serviceutil.ServiceFramework):
    _svc_name_ = "PythonAutoRunServer"
    _svc_display_name_ = "PythonAutoRunServer"
    _svc_description_ = "用于Python服务的自启动和监测"
    _svc_description_ = _svc_description_.decode('utf8').encode('gbk')

    def __init__(self, args):
        win32serviceutil.ServiceFramework.__init__(self, args)
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
        self.logger = self._getLogger()
        self.run = True

    def _getLogger(self):
        logger = logging.getLogger('[PythonService]')

        this_file = inspect.getfile(inspect.currentframe())
        dirpath = os.path.abspath(os.path.dirname(this_file))
        handler = logging.FileHandler(os.path.join(dirpath, "service.log"))

        formatter =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值