系统环境: CentOS7
supervisor版本:supervisor-3.1.4-1.el7.noarch
安装:
1
<code>yum -y </code><code>install</code> <code>supervisor</code>
启动服务:
<code>supervisord -c </code><code>/etc/supervisord</code><code>.conf</code>
用systemctl管理supervisord服务
进入目录 /usr/lib/systemd/system/,增加文件 supervisord.service,来使得机器启动的时候启动supervisor,文件内容
2
3
4
5
6
7
8
9
10
11
12
13
14
<code># supervisord service for systemd (CentOS 7.0+)</code>
<code># by ET-CS (https://github.com/ET-CS)</code>
<code>[Unit]</code>
<code>Description=Supervisor daemon</code>
<code>[Service]</code>
<code>Type=forking</code>
<code>ExecStart=</code><code>/usr/bin/supervisord</code> <code>-c </code><code>/etc/supervisord</code><code>.conf</code>
<code>ExecStop=</code><code>/usr/bin/supervisorctl</code> <code>$OPTIONS </code><code>shutdown</code>
<code>ExecReload=</code><code>/usr/bin/supervisorctl</code> <code>$OPTIONS reload</code>
<code>KillMode=process</code>
<code>Restart=on-failure</code>
<code>RestartSec=42s </code>
<code>[Install]</code>
<code>WantedBy=multi-user.target</code>
激活开机启动命令
<code>systemctl </code><code>enable</code> <code>supervisord.service</code>
启动supervisor进程
<code>systemctl start supervisord.service</code>
关闭supervisor进程
<code>systemctl stop supervisord.service</code>
如果修改了supervisor.service文件,可以通过reload命令来重新加载配置文件
<code>systemctl reload supervisord.service</code>
使用superviosr管理其他服务
下面是以supervisor管理.Net Core程序为例写的一个配置文件
进入/etc/supervisord.d/创建一个以.ini结尾的文件,内容如下
<code>[program:Fastel.InvoiceService] </code><code>##Fastel.InvoiceService是服务名称</code>
<code>command</code><code>=dotnet Fastel.InvoiceService.dll --ENVIRONMENT Release </code><code>##启动服务需要执行的命令</code>
<code>directory=</code><code>/opt/Apps/Fastel</code><code>.InvoiceService</code><code>/latest/packages</code> <code>##在哪个目录下执行启动服务的命令</code>
<code>user=user1 </code><code>##以user1用户启动Fastel.InvoiceService服务</code>
<code>stdout_logfile=</code><code>/opt/Apps/Fastel</code><code>.InvoiceService</code><code>/logs/stdout</code><code>.log </code><code>##标准输出日志路径</code>
<code>stderr_logfile=</code><code>/opt/Apps/Fastel</code><code>.InvoiceService</code><code>/logs/err</code><code>.log </code><code>##错误日志路径</code>
<code>autostart=</code><code>true</code> <code>##改服务随supervisor服务启动而启动</code>
<code>autorestart=</code><code>true</code> <code>##服务stop后自动重启</code>
<code>#startsecs=5 ##子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1,非必须设置</code>
<code>#priority=1</code>
<code>#stopasgroup=true</code>
<code>#killasgroup=true</code>
supervisorctl 命令管理服务
<code>supervisorctl status</code>
查看正在守候的所有服务状态
<code>supervisorctl update</code>
更新或者修改/etc/supervisord.d/下面的服务配置文件后,执行此命令重新加载配置
<code>supervisorctl reload</code>
重启supervisor中所有程序
<code>supervisorctl restart all</code>
<code>supervisorctl restart service_name</code>
重启指定的服务
<code>supervisorctl stop all</code>
停止所有服务
配置文件解释:
<a href="https://www.cnblogs.com/ajianbeyourself/p/5534737.html">https://www.cnblogs.com/ajianbeyourself/p/5534737.html</a>
本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/2052794,如需转载请自行联系原作者