Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护
supervisor 是用 python 开发的 linux/unix 系统下的一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。
supervisor 不支持任何版本的 window 系统;仅支持在 python2.4 或更高版本,但不能在任何版本的 python 3 下工作。
联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(python 包管理工具)的一个功能。所以先执行如下命令安装 setuptools:yum install python-setuptools
然后执行如下命令安装 supervisor:easy_install supervisor
输入命令查看配置文件模板来验证安装:echo_supervisord_conf
接着通过如下命令创建目录,这目录是为了让 supervisor 加载默认配置用的目录:mkdir /etc/supervisor
加载目录有了,然后通过echo_supervisord_conf程序(用来生成初始配置文件)来初始化一个配置文件:echo_supervisord_conf > /etc/supervisor/supervisord.conf
打开新的配置文件修改:vi /etc/supervisor/supervisord.conf
将底部的:
;[include] ;files = relative/directory/*.ini
修改为:
[include] files = conf.d/*.conf
这样supervisord加载时就会自动加载/etc/supervisor/conf.d目录下,所有扩展名为.conf的配置文件。
通过命令进入/conf.d目录:cd /etc/supervisor/conf.d
创建并写入配置信息: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
每次修改配置文件后,都要执行重启命令,这里要注意,因为没有环境变量,这种命令都要在supervisor安装目录里执行。
查看是否生效:ps -ef | grep dotnet
进入/usr/lib/systemd/system目录,配置supervisor开机启动:cd /usr/lib/systemd/system
新建一个“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
执行命令来验证是否为开机启动:systemctl is-enabled supervisord
推荐阅读
-
Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护
-
Linux服务器部署.Net Core笔记:二、安装FTP
-
Linux服务器部署.Net Core笔记:三、CentOS 7上安装.NetCore运行环境
-
Linux服务器部署.Net Core笔记:六、安装MySQL
-
Linux服务器部署.Net Core笔记:五、安装Nginx
-
Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护
-
Linux服务器部署.Net Core笔记:三、CentOS 7上安装.NetCore运行环境
-
Linux服务器部署.Net Core笔记:二、安装FTP