supervisor 安装

example

# install
pip install supervisor

# default config
echo_supervisord_conf > ./supervisord.conf

# supervisord.conf content
[unix_http_server]
file=/tmp/supervisor.sock
[inet_http_server]
port=0.0.0.0:9001
[supervisord]
logfile=/<path>/<to>/supervisord.log
loglevel=info
[program:prog_name]
command=<bash command>
directory=/<workdir>
redirect_stderr=true
stdout_logfile=/<path>/<log>.log

# start on 9001 port
# (default) /etc/supervisord.conf
sudo supervisord -c /<path>/<to>/supervisord.conf

listener config

# /etc/supervisord.conf
[eventlistener:listener]
command=/usr/bin/python3 /path/to/listener.py
process_name=%(program_name)s
numprocs=1
events=PROCESS_STATE

listener.py

# 进程状态变化时会触发
import sys


def write_stdout(s):
    # only eventlistener protocol messages may be sent to stdout
    sys.stdout.write(s)
    sys.stdout.flush()


def write_stderr(s):
    sys.stderr.write(s)
    sys.stderr.flush()


def main():
    while 1:
        # transition from ACKNOWLEDGED to READY
        write_stdout('READY\n')

        # read header line and print it to stderr
        line = sys.stdin.readline()
        write_stderr(line)

        # read event payload and print it to stderr
        headers = dict([x.split(':') for x in line.split()])
        data = sys.stdin.read(int(headers['len']))
        write_stderr(data)

        # transition from READY to ACKNOWLEDGED
        write_stdout('RESULT 2\nOK')


if __name__ == '__main__':
    main()

client

from xmlrpc.client import ServerProxy
server = ServerProxy('http://<supervisord_ip>:9001/RPC2')

print(server.supervisor.getState())
#print(server.system.listMethods())
#print(server.supervisor.getAllProcessInfo())
print(server.supervisor.startProcess(<program_name>))

转载于:https://my.oschina.net/redhands/blog/3061629

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值