linux centos 8 为.net core 添加进程守护 Supervisor

在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。

守护进程(daemon)是指在后台运行的,没有控制终端与之相连的进程。它独立于控制终端,周期性地执行某种任务。Linux的大多数服务器就是用守护进程的方式实现的。如web服务器进程http等。守护进程在后台运行,类似于Windows中的系统服务。

实现守护进程的软件有很多, 这次简单讲解Supervisor的使用

1. 安装

yum install supervisor

 2. 编辑配置文件 在 /etc/supervisord.d 创建 xxx.ini 文件, 注意输出日志文件需要先创建一个,否则可能启动不了

#配置程序名称
[program:xxxx]
#运行程序的命令
command=dotnet xxxx.dll --urls="http://*:8010;"
#命令执行的目录
directory=/usr/dotnetcore/xxxx
#进程环境变量
environment=ASPNETCORE_ENVIRONMENT=Production
#进程执行的用户身份
user=root
#进程停止信号,可以为TERM, HUP, INT, QUIT, KILL, USR1, or USR2等信号默认为TERM 。当用设定的信号去干掉进程,退出码会被认为是expected,非必须设置
stopsignal=INT
#如果是true的话,子进程将在supervisord启动后被自动启动,默认就是true,非必须设置
autostart=true
#这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的退出码的时候,才会被自动重启。当为true的时候,只要子进程挂掉,将会被无条件的重启
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了,默认值为1 。非必须设置
startsecs=1
#错误日志文件
stderr_logfile=/var/log/xxxx/xxxx.err.log
#输出日志文件
stdout_logfile=/var/log/xxxx/xxxx.out.log

3. 启动守护进程

systemctl start supervisord

4. 检查一下结果

ps -aux | grep "xxxx.dll"

5. 将守护进程添加到开机自启

systemctl enable supervisord

这样下一次就会开启自启

6. 重启应用

supervisorctl  restart  program_name

 7. 常见的命令

 
1)、更新新的配置到supervisord
supervisorctl update
2)、重新启动配置中的所有程序
supervisorctl reload
3)、启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
4)、查看正在守候的进程, 并进入程序
supervisorctl
5)、停止某一进程 (program_name=你配置中写的程序名称)
supervisorctl stop program_name
6)、重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
7)、停止全部进程
supervisorctl stop all
8)、使用启动文件启动
supervisord -c /etc/supervisor/supervisord.conf

posted @ 2020-12-11 17:55  范斯  阅读(666)  评论(0编辑  收藏  举报