Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的多个进程。
它具有一些与启动程序,daemontools和runit等程序相同的目标。 与这些程序中的某些程序不同,它不应作为“进程ID 1”的替代init运行。 相反,它旨在用于控制与项目或客户相关的过程,并且旨在在启动时像任何其他程序一样启动。
安装supervisord
yum install supervisor
配置守护进程
在/etc/supervisord.d/下新建后缀名为ini的文件
; 设置进程的名称,使用 supervisorctl 来管理进程时需要使用该进程名
[program:myblog]
directory = /home/web/myblog ; 程序的启动目录
command=./start.sh start ; 启动命令 最好绝对路径
autostart = true ; 在 supervisord 启动的时候也自动启动
numprocs=1 ; 默认为1
RestartSec=30
process_name=%(program_name)s ; 默认为 %(program_name)s,即 [program:x] 中的 x
user=root ; 使用 root 用户来启动该进程
autorestart=true ; 程序崩溃时自动重启,重启次数是有限制的,默认为3次
redirect_stderr=true ; 重定向输出的日志
stderr_logfile= /home/web/myblog/myblog_stderr.log
stdout_logfile = /home/web/myblog/myblog_stdout.log
loglevel=info
启动supervisord
systemctl restart supervisord.service
启动我们配置的进程
supervisorctl start server:myblog
此时可能会报错 server:myblog: ERROR (no such process)
我们执行一下下面这句话
supervisord -c /etc/supervisord.conf
重新启动
supervisorctl start server:myblog
此时我们看一下进程,就会启动成功了。