很多網友留言問如何配置Supervisor 自啟動,現將如何在CentOS7下配置Supervisor自啟動的兩種方法整理如下:
一、方法一
直接將啟動命令加入到/etc/rc.d/rc.local中(簡單但不推薦)
vi /etc/rc.d/rc.local
在現有的內容后面加入supervisor的啟動命令
supervisord -c /etc/supervisord.conf
注意:一定要執行 chmod +x /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
給文件加入可執行權限
根據官方的提示,該方式是不被建議的,強烈建議創建自己的systemd services或udev規則來啟動自已的應用,也就是方法二。
二、方法二
通過創建systemd services來實現自啟動 (推薦)
進入到/usr/lib/systemd/system/目錄
[root@localhost ~]# cd /usr/lib/systemd/system/
找到supervisord及supervisorctl命令的路徑
[root@localhost system]# which supervisord
/usr/local/bin/supervisord
[root@localhost system]# which supervisorctl
/usr/local/bin/supervisorctl
創建文件supervisord.service
vi supervisord.service
復制以下代碼。注意:supervisord及supervisorctl命令的路徑根據實際情況進行修改
#supervisord.service
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/local/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl shutdown
ExecReload=/usr/local/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
啟用服務
[root@localhost system]# systemctl enable supervisord
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service
啟動服務
[root@localhost ~]# systemctl start supervisord
查看服務狀態
[root@localhost ~]# systemctl status supervisord
● supervisord.service - Supervisor daemon
Loaded: loaded (/usr/lib/systemd/system/supervisord.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-11-11 11:11:36 CST; 12s ago
Process: 3822 ExecStart=/usr/local/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS)
Main PID: 3850 (supervisord)
CGroup: /system.slice/supervisord.service
├─3850 /usr/local/bin/python3.8 /usr/local/bin/supervisord -c /etc/supervisord.conf
├─3916 uwsgi --ini /home/flask_web/uwsgi.ini
├─3918 uwsgi --ini /home/flask_web/uwsgi.ini
└─3919 uwsgi --ini /home/flask_web/uwsgi.ini
驗證一下是否為開機啟動
[root@localhost system]# systemctl is-enabled supervisord
enabled
reboot重啟服務器后,可以發現supervisor隨服務器啟動后自動啟動了。
至此,本文介紹了CentOS7下配置Supervisor自啟動的兩種方法,推薦使用第二種方式。