安裝Supervisor
[toc]
安裝Supervisor
安裝python安裝工具pip
下載get-pip.py 檔案
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
執行安裝
python get-pip.py
如果 安裝完成pip 命令不能使用,搜尋系統中pip檔案,建立命令連結
ln -s /usr/local/python27/bin/pip /usr/bin/pip
安裝supervisord
pip install supervisor
安裝後會出現兩個命令
/usr/bin/supervisord -- supervisor 服務守護程式
/usr/bin/supervisorctl -- supervisor 控制檯程式
測試安裝是否成功
echo_supervisord_conf
建立配置檔案
mkdir -p /etc/supervisor
mkdir -m 755 -p /etc/supervisor/
echo_supervisord_conf > /etc/supervisord.conf #生成預設配置檔案
sed -i "s/\;\[include\]/\[include\]/" /etc/supervisord.conf
echo "files = /etc/supervisor/*.conf" >> /etc/supervisord.conf
啟動supervisor
執行:supervisord
檢視程式是否執行:ps -ef|grep supervisor
檢視任務狀態:supervisorctl
Centos7 建立服務
cat > /usr/lib/systemd/system/supervisord.service << EOF
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
EOF
systemclt enable supervisord
Centos6 建立服務
cat > /etc/init.d/supervisord << EOF
#!/bin/sh
#
# /etc/rc.d/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord
# Source init functions
. /etc/rc.d/init.d/functions
prog="supervisord"
prefix="/usr/"
exec_prefix="${prefix}"
prog_bin="${exec_prefix}/bin/supervisord"
PIDFILE="/var/run/$prog.pid"
start()
{
echo -n $"Starting $prog: "
daemon $prog_bin --pidfile $PIDFILE
[ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup"
echo
}
stop()
{
echo -n $"Shutting down $prog: "
[ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown"
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
EOF
chmod +x /etc/init.d/supervisord
chkconfig --add supervisord
chkconfig supervisord --level 2345 on
任務配置
在etc/supervisor/
目錄下建立一個 .conf
的檔案(可以直接寫入到supervisor.conf檔案中,推薦在supervisor目錄下新建一個任務配置檔案)
vi /etc/supervisor/tomcat8801
[program:tomcat8801]
command=/opt/tomcat/bin/catalina.sh run
environment=JAVA_HOME="/usr/local/jdk/",JAVA_BIN="/usr/local/jdk/bin"
directory=/opt/tomcat
autostart = true
autorestart=true
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
.conf
檔案引數說明
command= 啟動命令
environment= 執行環境
directory= 軟體主目錄
stdout_logfile= 日誌檔案位置
;autostart = true ; 在 supervisord 啟動的時候也自動啟動
;startsecs = 5 ; 啟動 5 秒後沒有異常退出,就當作已經正常啟動了
;autorestart = true ; 程式異常退出後自動重啟
;startretries = 3 ; 啟動失敗自動重試次數,預設是 3
;user = leon ; 用哪個使用者啟動
;redirect_stderr = true ; 把 stderr 重定向到 stdout,預設 false
;stdout_logfile_maxbytes = 20MB ; stdout 日誌檔案大小,預設 50MB
;stdout_logfile_backups = 20 ; stdout 日誌檔案備份數
; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案)
; 可以通過 environment 來新增需要的環境變數,一種常見的用法是修改 PYTHONPATH
任務管理
supervisorctl 命令進入 supervisorctl 的 shell 介面,然後可以執行不同的命令了
status # 檢視程式狀態
stop usercenter # 關閉 usercenter 程式
start usercenter # 啟動 usercenter 程式
restart usercenter # 重啟 usercenter 程式
reload # 讀取有更新(增加)的配置檔案,不會啟動新新增的程式
update # 重啟配置檔案修改過的程式
管理nginx
[program:up_nginx]
command=/usr/sbin/nginx
process_name=%(program_name)s
numprocs=4 ; 啟動幾個程式
autostart=true ; 隨著supervisord的啟動而啟動
autorestart=true ; 自動重啟。。當然要選上了
startretries=10 ; 啟動失敗時的最多重試次數
exitcodes=0 ; 正常退出程式碼(是說退出程式碼是這個時就不再重啟了嗎?待確定)
stopsignal=KILL ; 用來殺死程式的訊號
stopwaitsecs=10 ; 傳送SIGKILL前的等待時間
redirect_stderr=true ; 重定向stderr到stdout
管理tomcat
[program:ucaction_pre]
command=/mnt/data/tomcat_uc/bin/catalina.sh run
environment=JAVA_HOME="/usr/local/jdk/",JAVA_BIN="/usr/local/jdk/bin"
directory=/mnt/data/tomcat_uc ; first change to the dir and exec the command
autostart = true
autorestart = true
stopsignal=QUIT
stopasgroup=true ;預設為false,程式被殺死時,是否向這個程式組傳送stop訊號,包括子程式
killasgroup=true ;預設為false,向程式組傳送kill訊號,包括子程式
redirect_stderr=true ; 把stderr重定向到stdout,預設false
stdout_logfile_maxbytes=50MB ; stdout 日誌檔案大小,預設50MB
stdout_logfile_backups = 10 ; stdout 日誌檔案備份數,預設是10
stdout_logfile = /mnt/logs/tomcat_uc/catalina.out
zookeeper
supervisord.conf 配置檔案詳解
[inet_http_server] ; 開啟TCP/IP http 伺服器
port=192.168.18.10:9001 ; 偵聽埠
username=user ; 認證使用者名稱
password=123 ; 密碼
[supervisord]
logfile=/tmp/supervisord.log ; 日誌輸出檔案
logfile_maxbytes=50MB ; 日誌最大空間
logfile_backups=10 ; 日誌輪轉保留數
loglevel=info ; (日誌等級; default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (pid檔案; default supervisord.pid)
nodaemon=false ; (前臺執行 ;default false)
minfds=1024 ; (最小檔案描述符數 ;default 1024)
minprocs=200 ; (最小程式數 ;default 200)
[rpcinterface:supervisor] ; rpc 介面
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl] ; 控制檯設定
erverurl=unix:///tmp/supervisor.sock ; socket 訪問路徑
serverurl=http://192.168.18.10:9001 ; URL 訪問路徑
username=user ; 使用的認證使用者名稱 (上同)
password=123 ; 密碼
prompt=mysupervisor ; cmd line prompt (default "supervisor")
history_file=~/.sc_history ; use readline history if available
[program:nginx]
command=/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf ; 程式路徑
directory=/tmp ; 切換到目錄
user=www-data ; 執行程式的使用者
autorestart=true ; 自動重啟
priority=999 ; 優先順序
startsecs=1 ; 重啟前等待時間
startretries=100 ; 最大重啟次數
stdout_logfile=/tmp/supervisor/nginx/nginx.log ; 日誌檔案
stdout_logfile_maxbytes=10MB ; 日誌檔案最大容量
stderr_logfile=/tmp/supervisor/nginx/nginx_err.log ; 錯誤日誌檔案
stderr_logfile_maxbytes=1MB ; 錯誤日誌檔案最大容量
相關文章
- 安裝 supervisor
- Supervisor安裝與配置
- Supervisor 安裝與使用
- 在ubuntu supervisor 安裝 配置Ubuntu
- centos7安裝supervisorCentOS
- docker 安裝部署 supervisor 小記Docker
- Laravel 佇列安裝 supervisor 配置Laravel佇列
- Supervisor 安裝除錯記錄除錯
- 正確離線安裝supervisor
- 程式管理程式supervisor安裝和使用
- Supervisor安裝、配置、開啟啟動
- CentOS 安裝 supervisor 及配置 Redis 佇列CentOSRedis佇列
- Supervisor程式管理工具安裝配置
- CentOS supervisor 安裝與配置 (Laravel 佇列示例)CentOSLaravel佇列
- Linux Supervisor的安裝與使用入門Linux
- RHEL6.5安裝supervisor-3.3.1-py2.6.egg
- Linux程式管理工具Supervisor的安裝配置Linux
- Linux程式管理工具supervisor安裝及使用Linux
- centos8(linux): 安裝使用supervisor管理laravel佇列CentOSLinuxLaravel佇列
- 運維:Centos8安裝Supervisor守護Nginx程式筆記運維CentOSNginx筆記
- centos 7.9安裝supervisor支援laravel佇列常駐後臺筆記CentOSLaravel佇列筆記
- supervisor for MacMac
- Supervisor 配置
- codis安裝 (java 安裝 + zookeeper 安裝 + go 安裝 + codis 安裝JavaGo
- Supervisor使用詳解
- Supervisor 環境搭建
- 程式守護 supervisor
- Supervisor 使用總結
- Laravel中使用supervisorLaravel
- python supervisor使用Python
- supervisor原始碼分析原始碼
- supervisor的client apiclientAPI
- supervisor 使用記錄
- supervisor 管理 Django 程序Django
- 銀河麒麟V10安裝ASP.NET Core並配置Supervisor讓網站開機自動執行ASP.NET網站
- supervisor 程式管理入門
- supervisor 常用命令
- supervisor 指定 python 版本Python