使用 supervisor 守护进程
Table of Contents

supervisor 是一个基于 Python 的进程管理工具,这里以 shadowsocks-manager (旧版)进程为例进行叙述。

安装

使用 pip 安装 supervisor:

$ pip install supervisor

配置

生成并编辑 supervisor 配置文件:

$ mkdir /etc/supervisor
$ echo_supervisord_conf > /etc/supervisor/supervisord.conf
$ vim /etc/supervisor/supervisord.conf

将末尾两行取消注释并修改为:

[include]
files = /etc/supervisor/programs/*.ini

建立守护进程配置:

$ cd /etc/supervisor
$ mkdir programs
$ vim programs/shadowsocks-manager.ini

添加以下内容:

[program:shadowsocks-manager]
directory = /root/shadowsocks-manager/
command = node server
autostart = true
startsecs = 5
autorestart = true
user = root
redirect_stderr = true
stdout_logfile_backups = 20
stdout_logfile = /root/shadowsocks-manager/stdout.log

并在 /root/shadowsocks-manager 下建立空日志以便 supervisor 输出:

$ cd /root/shadowsocks-manager
$ touch stdout.log

使用

启动 supervisor:

$ supervisord -c /etc/supervisor/supervisord.conf

再次通过浏览器访问 http://<你的服务器 IP>:6003 来查看 shadowsocks-manager 是否正常启动。

若成功,在 /etc/rc.local 中的 exit 0 前加入一行来使 supervisord 开机启动:

/usr/local/bin/supervisord -c /etc/supervisor/supervisord.conf

另外,你可以通过 supervisorctl 控制 shadowsocks-manager 启动、停止和重启:

$ supervisorctl start shadowsocks-manager       #启动
$ supervisorctl stop shadowsocks-manager        #停止
$ supervisorctl restart shadowsocks-manager     #重启