systemd下supervisord服務開機自啟動以及註意事項
centos7 開機自啟動腳本:
#vim /lib/systemd/system/supervisord.service # supervisord service for sysstemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] ExecStart=/usr/bin/supervisord ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
這個自啟動腳本需要修改/etc/supervisord.conf配置文件:
????#vim /etc/supervisrod.conf
????????nodaemon=false????改成true
或者:#vim /lib/systemd/system/supervisord.service
[Unit] Description=Process Monitoring and Control Daemon After=rc-local.service [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf SysVStartPriority=99 [Install] WantedBy=multi-user.target
無需修改/etc/supervisord.conf配置文件
兩個自啟動腳本都能夠添加到systemctl自啟動服務
#systemctl enable supervisord.service
#systemctl start/restart/stop supervisor.service
systemd 下supervisor服務自啟動服務管理有變量的服務
但是當superviosr被管理的服務有環境變量,是會有問題(比如啟動elasticserch服務,有JAVA_HOME和limit.conf的依賴),原因:/etc/profile或者/etc/security/limit.conf 這些文件中配置的環境變量僅對通過pam登錄的用戶生效,
獲取可以通過添加環境變量來解決(未測試,因為supervisor服務自啟動的需要不是很強烈):
[Service]
environment=PYTHONPATH=/opt/mypypath:%(ENV_PYTHONPATH)s,PATH=/opt/mypath:%(ENV_PATH)s
參考:https://github.com/Supervisor/initscripts
參考:https://blog.csdn.net/binggoogle/article/details/53203991
參考:https://www.cnblogs.com/mhc-fly/p/8512491.html
參考:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
systemd下supervisord服務開機自啟動以及註意事項