Supervisor
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
安装supervisor
1、sudo apt-get install supervisor,通过这种方式安装后,自动设置为开机启动
2、sudo pip install supervisor 进行安装,但是需要手动启动,然后设置为开机启动
配置
supervisor的配置文件在:/etc/supervisor/supervisord.conf ,这个配置文件提供了大部分的默认配置,子进程的配置文件需要添加在/etc/supervisor/conf.d/*.conf,以下是一份简单的配置文件内容:
[program:xxxxx] ;程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作autorestart=True ; 程序异常退出后自动重启
autostart=True ; 在 supervisord 启动的时候也自动启动
stderr_logfile=/home/app/logs/err.log ; 错误日志
stdout_logfile=/home/app/logs/run.log ;运行日志
command=python /home/app/server.py ; 启动命令,与手动在命令行启动的命令是一样的user=ubuntu ; 用哪个用户启动
startsecs=1 ;启动间隔
命令
sudo supervisorctl update #更新配置文件
sudo supervisorctl status #查看当前子进程状态
sudo supervisorctl start xxxxx #启动子进程
sudo supervisorctl stop xxxxx #停止子进程
sudo supervisorctl restart xxxxx #重启
网友评论