菜鸟笔记
提升您的技术认知

supervisor守护工具配置

阅读 : 21

1    进程安装
1.1    安装python
tar xvf Python-2.7.10.tgz
cd Python-2.7.10
./configure --prefix=/usr/local/python2.7
make & make install
ln -s /root/chx/python2.7/bin/python /usr/bin/python
1.2    安装守护进程
解压supervisor-3.3.1.tar.gz 并安装
# tar zxvf supervisor-3.3.1.tar.gz && cd supervisor-3.3.1
# python setup.py install

验证成功,输入supervisorctl --help
1.3    安装工具
# tar zxvf setuptools-0.6c11.tar.gz && cd setuptools-0.6c11
# python setup.py build
# python setup.py install
2    创建supervisor的配置文件
# echo_supervisord_conf > /etc/supervisord.conf
3    修改配置文件
在supervisord.conf文件最后增加如下内容,实际的路径、启动命令等信息需要根据实际情况填写。
 [program:RtspProxy]
command=dotnet RTSPProxy.dll
directory=/usr/local/rtsp
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/usr/local/itos/itos-rtsp/itos.err.log
stdout_logfile=/usr/local/itos/itos-rtsp/itos.out.log

4    开启supervisord服务
# supervisord -c /etc/supervisord.conf  
5    相关命令
supervisorctl status 查看进程运行状态 
supervisorctl start 进程名 启动进程 
supervisorctl stop 进程名 关闭进程 
supervisorctl restart 进程名 重启进程 
supervisorctl update 重新载入配置文件 
supervisorctl shutdown 关闭supervisord 
supervisorctl clear 进程名 清空进程日志 
supervisorctl 进入到交互模式下。使用help查看所有命令。 
start stop restart + all 表示启动,关闭,重启所有进程。

重启机器如果出现
unix:///tmp/supervisor.sock no such file的问题
按如下方式解决

1、打开配置文件

vim /etc/supervisord.conf
这里把所有的/tmp路径改掉,/tmp/supervisor.sock 改成 /var/run/supervisor.sock,/tmp/supervisord.log 改成 /var/log/supervisor.log,/tmp/supervisord.pid 改成 /var/run/supervisor.pid 要不容易被linux自动清掉

2、修改权限

sudo chmod 777 /run
sudo chmod 777 /var/log
如果没改,启动报错 IOError: [Errno 13] Permission denied: '/var/log/supervisord.log'

3、创建supervisor.sock

sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
4、启动supervisord,注意stop之前的实例或杀死进程

6    其他

1.查看supervisor运行的进程
ps -ef | grep supervisord

2.杀死进程
kill -s SIGTERM 26530 #数字为进程id
supervisord -c /etc/supervisord.conf #启动supervisor

7    设置开机启动
7.1    在shell里执行
Vi  /lib/systemd/system/supervisord.service
7.2    编辑开机启动时执行的脚本如下
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf // 开机启动时执行
ExecStop=/usr/bin/supervisord shutdown 
ExecReload=/usr/bin/supervisord reload  
killMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
7.3    执行开机启动命令:
systemctl enable supervisord