使用supervisor管理springboot項目

一、服務器配置介紹

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  寫的更爲詳細。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章