博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于Linux下Supervisor 守护进程的配置

Posted on 2019-06-29 14:30  怡霖  阅读(1398)  评论(0编辑  收藏  举报

近日在学习通过linux部署.netCore,通过Supervisor的守护进程进行服务自动运行,重启。通过网上搜索相关资料,初始配置时,搞的一头雾水,把个人遇到的一些问题整理如下:

第一步:通过命令进行安装Supervisor守护进程,我用的是centos系统

      yum install supervisor

 安装完成后,在/etc 下生成两个文件,一个是supervisord.conf 配置文件,一个是supervisord.d文件夹,查看配置文件supervisord.conf ,最后一行添加files=/etc/supervisor/conf.d/TestNetCore.conf ,注意:

[include]

files=/etc/supervisor/conf.d/TestNetCore.conf 

要启用此代码

 

这个可以自定义,主要就是包含用户项目配置文件

TestNetCore.conf 文件内容

 

[program:HelloWebApp] #应用程序名称自己定义

command=dotnet HelloWebApp.dll #要执行的命令

directory=/home/yxd/Workspace/publish #命令执行的目录

environment=ASPNETCORE__ENVIRONMENT=Production #环境变量

user=root #进程执行的用户身份

stopsignal=INT

autostart=true #是否自动启动

autorestart=true #是否自动重启

startsecs=1 #自动重启间隔

stderr_logfile=/var/log/HelloWebApp.err.log#标准错误日志

stdout_logfile=/var/log/HelloWebApp.out.log #标准输出日志

 

注意:每句话后面不能带有分号“;”,我复制时忽略了这一点,自动带上分号后,服务进程运行时,提示dotnet 失败

保存退出:wq

 

重新运行supervisord  命令:systemctl restart supervisord ,查看其状态命令:systemctl status supervisord

以上初步配置成功,监守服务进程配置结束,接下来配置开机自启动,服务器宕机重启后,服务进程自动运行,无需人为干预

1.在指定目录下创建文件supervisord.service

vi /usr/lib/systemd/system/supervisord.service 打开后编辑一下内容

[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

 

保存退出

执行以下命令:

systemctl enable supervisord

提示:

Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
验证是否为开机启动:
systemctl is-enabled supervisord

提示:

enabled

表示设置成功!

至此,创建supervisor守护进程完毕。

 

参考:https://www.cnblogs.com/Hai--D/p/5820718.html

   https://www.cnblogs.com/jayjiang/p/12610637.html