欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

程序员文章站 2023-11-08 13:25:46
Supervisor 是用 Python 开发的 Linux/Unix 系统下的一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。 Supervisor 不支持任何版本的 Window 系统;仅支持在 Python2.4 或更高版本,但 ......

supervisor 是用 python 开发的 linux/unix 系统下的一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。

supervisor 不支持任何版本的 window 系统;仅支持在 python2.4 或更高版本,但不能在任何版本的 python 3 下工作。

联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(python 包管理工具)的一个功能。所以先执行如下命令安装 setuptools:yum install python-setuptools

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

然后执行如下命令安装 supervisor:easy_install supervisor

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

输入命令查看配置文件模板来验证安装:echo_supervisord_conf

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

接着通过如下命令创建目录,这目录是为了让 supervisor 加载默认配置用的目录:mkdir /etc/supervisor

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

加载目录有了,然后通过echo_supervisord_conf程序(用来生成初始配置文件)来初始化一个配置文件:echo_supervisord_conf > /etc/supervisor/supervisord.conf

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

打开新的配置文件修改:vi /etc/supervisor/supervisord.conf

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

将底部的:

;[include]
;files = relative/directory/*.ini

修改为:

[include]
files = conf.d/*.conf

这样supervisord加载时就会自动加载/etc/supervisor/conf.d目录下,所有扩展名为.conf的配置文件。

通过命令进入/conf.d目录:cd /etc/supervisor/conf.d

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

创建并写入配置信息:vi testweb.conf

[program:testweb]
command= dotnet testweb.dll --urls="http://*:8080"
directory= /home/vsftpd/lk_ftp/testweb
autostart=true
autorestart=true
startretries=5
startsecs=1
user=root
priority=999
stderr_logfile=/var/log/webapplication1.err.log
stdout_logfile=/var/log/webapplication1.out.log
environment=aspnetcore_environment=production
stopsignal=int

program:自定义进程名称
command:程序启动命令
directory:命令执行的目录,即项目部署路径
autostart:在supervisord启动时,程序是否启动
autorestart:程序退出后自动重启
startretries:启动失败自动重试次数,默认是3
startsecs:自动重启间隔
user:设置启动进程的用户,默认是root
priority:进程启动优先级,值小的优先启动
stderr_logfile:标准错误日志
stdout_logfile:标准输出日志
environment:进程环境变量
stopsignal:请求停止时用来杀死程序的信号

完成配置后就可以启动supervisor 服务了:supervisord -c /etc/supervisor/supervisord.conf

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

每次修改配置文件后,都要执行重启命令,这里要注意,因为没有环境变量,这种命令都要在supervisor安装目录里执行。

查看是否生效:ps -ef | grep dotnet

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

进入/usr/lib/systemd/system目录,配置supervisor开机启动:cd /usr/lib/systemd/system

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

新建一个“supervisord.service”文件写入配置:vi supervisord.service

# supervisord service for systemd (centos 7.0+)
# by et-cs (https://github.com/et-cs)
[unit]
description=supervisor daemon

[service]
type=forking
execstart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
execstop=/usr/bin/supervisorctl $options shutdown
execreload=/usr/bin/supervisorctl $options reload
killmode=process
restart=on-failure
restartsec=42s

[install]
wantedby=multi-user.target

设置为随系统自动启动:systemctl enable supervisor

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护 

执行命令来验证是否为开机启动:systemctl is-enabled supervisord

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护