在centos7上爲應用添加進程守護supervisor

本文主要記錄在centos7上爲應用添加進程守護程序,防止因系統重啓或應用意外退出致使程序再也不運行。java

在centos6上安裝使用supervisorpython

安裝守護程序supervisord

yum install python-setuptools
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf

修改配置文件

把內容:shell

[include] 
 files = /usr/local/share/supervisor/*.conf

加入/etc/supervisord.conf內(注意行前的;爲註釋,要去掉)。centos

添加守護程序

/usr/local/share/supervisor/目錄下添加demo.conf,內容以下:app

[program:demo]
user=xxx
directory=/home/xxuser/xxapp
command=/usr/bin/java -server -jar xxx.jar
autostart=true
autorestart=true
startsecs=3
stdout_logfile=/usr/local/share/supervisor/demo.log

設置supervisor開機啓動

進入目錄/usr/lib/systemd/system/新增文件supervisord.service,內容以下:url

[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/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.servicecentos7

控制進程守護

  1. 啓動supervisor進程systemctl start supervisord.service,會啓動全部被守護的應用(在/usr/local/share/supervisor/配置過的)
  2. 中止進程守護systemctl stop supervisord.service,會中止全部被守護的應用
  3. 重載變化的配置systemctl reload supervisord.service,當/etc/supervisord.conf變化時執行

控制被守護的應用

  1. 查看全部應用supervisorctl status
  2. stop某個應用supervisorctl stop xxx, xxx爲上一步現實的應用名即[program:demo]這裏是demo
  3. restart某個應用supervisorctl restart xxx
  4. 修改某個應用的配置後(supervisorctl update 會從新啓動這個應用)
相關文章
相關標籤/搜索