Supervisor-java守護進程工具

1、安裝Python包管理工具(easy_install)

yum install python-setuptools

2、安裝Supervisor

easy_install supervisor

3、配置Supervisor應用守護

3.1 通過運行echo_supervisord_conf程序生成supervisor的初始化配置文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

3.2 然後查看路徑下的supervisord.conf。在文件尾部添加如下配置

...
;[include]
;files = relative/directory/*.ini

;conf.d 爲配置表目錄的文件夾,需要手動創建
[include]
files = conf.d/*.conf`

3.3 爲你的程序創建一個.conf文件,放在目錄"/etc/supervisor/conf.d/"下

[program:hwSdkServer]
;environment=JAVA_HOME=//jdk1.8.0/bin  ; 這裏可以創建環境變量
directory = /opt/4kgarden/java ; 程序的啓動目錄
command = java -jar -server -Xms256m -Xmx512m -Djava.io.tmpdir=/tmp  -Djava.security.egd=file:/dev/./urandom sdk_server_java_hw-1.0.3.jar --spring.profiles.active=test -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:./gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./jvmlogs ; 啓動命令,可以看出與手動在命令行啓動的命令是一樣的
autostart = true     ; 在 supervisord 啓動的時候也自動啓動
startsecs = 30        ; 啓動 30 秒後沒有異常退出,就當作已經正常啓動了
autorestart = true   ; 程序異常退出後自動重啓
startretries = 3     ; 啓動失敗自動重試次數,默認是 3
user = root          ; 用哪個用戶啓動
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默認 false
stdout_logfile_maxbytes = 20MB  ; stdout 日誌文件大小,默認 50MB
stdout_logfile_backups = 20     ; stdout 日誌文件備份數
; stdout 日誌文件,需要注意當指定目錄不存在時無法正常啓動,所以需要手動創建目錄(supervisord 會自動創建日誌文件)
stdout_logfile = /opt/logs/4kgarden/hwSdkServer/hwSdkServer.log ;應用日誌目錄

3.4 運行supervisord,查看是否生效,不報錯就OK

supervisord -c /etc/supervisor/supervisord.conf

4、配置Supervisor開機啓動

4.1 /usr/lib/systemd/system/ 目錄中新建一個“supervisord.service”文件

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/local/bin/supervisord -c /etc/supervisor/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

4.2 開啓開機啓動
systemctl enable supervisord

4.3 驗證是否成功
systemctl is-enabled supervisord
在這裏插入圖片描述

4.4 常用命令

supervisorctl restart <application name> ;重啓指定應用
supervisorctl stop <application name> ;停止指定應用
supervisorctl start <application name> ;啓動指定應用
supervisorctl restart all ;重啓所有應用
supervisorctl stop all ;停止所有應用
supervisorctl start all ;啓動所有應用

*4.5 *參考文檔

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