一、服務器配置介紹
1、系統:centos7
2、JDK:java8
二、安裝supervisor
本文使用yum方式,其他系統可自行查詢合適的安裝工具
yum install supervisor
三、supervisor配置文件
1、supervisor配置文件在 /etc/superviosr/目錄下,其中supervisord.conf爲總配置文件,服務配置可放在conf.d目錄下,命名爲*.conf
2、本文中springboot服務名稱爲“demo”,jar包爲“demo.jra”,目錄爲/root/projects/demo
服務配置如下:注意,這裏面註釋符號爲; 而不是常用的#,否則啓動會出錯
[program:demo]
directory=/root/projects/demo ; 程序的啓動目錄
command=java -jar demo.jar ; 啓動命令
autostart=true ; 在 supervisord 啓動的時候也自動啓動
startsecs=30 ; 啓動 30 秒後沒有異常退出,就當作已經正常啓動了
autorestart=true ; 程序異常退出後自動重啓
startretries=3 ; 啓動失敗自動重試次數,默認是 3
user=root ; 用哪個用戶啓動
redirect_stderr=true ; 把 stderr 重定向到 stdout,默認 false
stdout_logfile_maxbytes=100MB ; stdout 日誌文件大小,默認 50MB
stdout_logfile_backups=2 ; stdout 日誌文件備份數
; stdout 日誌文件,需要注意當指定目錄不存在時無法正常啓動,所以需要手動創建目錄
stdout_logfile=/root/projects/demo/nohup.out ;應用日誌目錄
四、supervisor使用
1、首先啓動supervisor
supervisord -c /etc/supervisor/supervisord.conf
2、因爲設置了隨supervisor啓動而啓動,所以此時項目已經啓動了,使用命令查看進程
3、本地訪問服務成功
五、supervisor其他命令
systemctl start supervisord.service //啓動supervisor並加載默認配置文件
systemctl enable supervisord.service //將supervisor加入開機啓動項
supervisorctl status //查看所有進程的狀態
supervisorctl stop es //停止es
supervisorctl start es //啓動es
supervisorctl restart //重啓es
supervisorctl update //配置文件修改後使用該命令加載新的配置
supervisorctl reload //重新啓動配置中的所有程序
六、supervisor終端操作
可以使用supervisorctl命令進入終端,然後以上命令可以省去supervisorctl
七、可能會遇到的問題
1、error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224
這種一般是未啓動supervisord服務導致,使用啓動命令即可
supervisord -c /etc/supervisor/supervisord.conf
2、Error: not a valid boolean value: 'true # \xe5\x9c\xa8 supervisord \xe5\x90\xaf\xe5\x8a\xa8\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xe4\xb9\x9f\xe8\x87\xaa\xe5\x8a\xa8\xe5\x90\xaf\xe5\x8a\xa8' in section 'program:demo' (file: '/etc/supervisor/conf.d/demo.conf')For help, use /usr/bin/supervisord -h
這種一般就是上面注意事項說到的,註釋符號的問題了,解決辦法就是使用; 來註釋。
八、說明
1、本文在操作時supervisorctl需要在/etc/supervisor/目錄下操作,否則會找不到服務/進程。可能有全局的設置,但是此時沒有進行操作,以後擴展的話再補充此文。
2、操作時參考了一篇博客:https://www.jianshu.com/p/0b9054b33db3 寫的更爲詳細。