linux的守护进程类似于windows的服务。linux通过supervisor创建守护进程。https://blog.csdn.net/u014115673/article/details/54601800
1、安装supervisor
sudo apt-get install supervisor -- ubuntu
yum install -y supervisor -- centos
安装成功后,supervisor就会默认启动,也会随系统启动。
CentOS安装完成之后,默认不启动,可以使用脚本启动:
/usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
2、有很多添加守护进程的方法,下面介绍一种最好用的一种,将每个进程的配置文件单独拆分,放在/etc/supervisor/conf.d/目录下,以.conf作为扩展名。
[program:OC] command=dotnet /home/Documents/OC/OC.Service.dll #被监控的进程启动命令 /home/Documents/Lottery.OC 可以省略不写 numprocs=1 #启动进程的数量
startsecs=1 directory=/home/Documents/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 #脚本以什么用户身份运行
这样子就创建好了守护进程:OC
3、web操作界面创建
在supervisor的配置文件supervisord.conf中添加一下代码
[inet_http_server]
port=0.0.0.0:9001
username=user
password=123
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都不会自动重启。