【Linux】- Ubuntu守护进程supervisor

 linux的守护进程类似于windows的服务。linux通过supervisor创建守护进程。

1、安装supervisor

sudo apt-get install supervisor

 【Linux】- Ubuntu守护进程supervisor

安装成功后,supervisor就会默认启动,也会随系统启动。

2、有很多添加守护进程的方法,下面介绍一种最好用的一种,将每个进程的配置文件单独拆分,放在/etc/supervisor/conf.d/目录下,以.conf作为扩展名。

[program:OC]
command=dotnet /home/wangwust/Documents/Lottery.OC/Lottery.OC.Service.dll   #被监控的进程启动命令 /home/wangwust/Documents/Lottery.OC 可以省略不写
numprocs=1                                                                  #启动进程的数量
startsecs=1 directory
=/home/wangwust/Documents/Lottery.OC/ #脚本所在的目录 autostart=true #是否随supervisor启动 默认为true autorestart=true #是否自动重启 三个选项false、unexpected、true,若为false,无论什么情况下都不自动重启;若为unexpected,只有进程退出码不在exitcodes里面时才重启 startretries=10 #启动失败后的重试次数 exitcodes=0 #正常退出代码 stopsignal=KILL #用来杀死进程的信号 stopwaitsecs=10 #发送stopsigal前的等待时间 redirect_stderr=true #重定向stderr到stdout stdout_logfile=logfile #指定日志文件
user=wangwust #脚本以什么用户身份运行

【Linux】- Ubuntu守护进程supervisor

这样子就创建好了守护进程:OC

3、web操作界面创建

    在supervisor的配置文件supervisord.conf中添加一下代码

[inet_http_server]
port=127.0.0.1:9001
username=user
password=123

 【Linux】- Ubuntu守护进程supervisor

【Linux】- Ubuntu守护进程supervisor

 

 4、supervisor常用命令

supervisorctl version     #查看supervisor版本

supervisorctl start OC #启动进程OC supervisorctl stop OC #停止进程OC supervisorctl start all #启动所有进程 supervisorctl stop all #停止所有进程 supervisorctl status #查看所有进程状态 supervisorctl reload #载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。 supervisorctl update #根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

5、supervisor启动和停止的日志文件存放在/var/log/supervisor/supervisord.log

注意:显式用stop停止掉的进程,用reload或者update都不会自动重启。