系統環境: 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,如需轉載請自行聯系原作者