Supervisor 为您提供了一个启动、停止和监控流程的地方。可以单独或分组控制过程。您可以配置 Supervisor 以提供本地或远程命令行和 Web 界面
1、安装Supervisor
yum -y install epel-release
yum -y install supervisor
systemctl start supervosor
systemctl enable supervosor
2、修改Supervisor 配置
vim /etc/supervisord.conf
;是取消注释
; Sample supervisor config file.
[unix_http_server]
file=/var/run/supervisor/supervisor.sock ; (the path to the socket file)
;chmod=0700 ; sockef file mode (default 0700)
;chown=nobody:nogroup ; socket file uid:gid owner
username=**** ; (default is no username (open server))
#使用supervisorctl登陆到supervisord会话窗口的用户
password=***** ; (default is no password (open server))
#使用supervisorctl登陆到supervisord会话窗口的密码
#执行supervisorctl -u 用户 -p 密码
#web页面开启, 9095是端口 下面是登陆web的用户密码
[inet_http_server] ; inet (TCP) server disabled by default
port=0.0.0.0:9095 ; (ip_address:port specifier, *:port for all iface)
username=*** ; (default is no username (open server))
password=**** ; (default is no password (open server))
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false ; (start in foreground if true;default false)
minfds=1024 ; (min. avail startup file descriptors;default 1024)
minprocs=200 ; (min. avail process descriptors;default 200)
3、cat /etc/supervisord.d/nginx.ini 配置nginx服务 测试
[program:nginx]
command=/usr/sbin/nginx -g 'daemon off;'
user=root
startsecs=5
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/nginx.log
stdout_logfile_backups=5
使用supervisorctl命令登录到supervisord会话窗口来管理进程
supervisorctl -u 用户 -p 密码
supervisor> update 更新
supervisor> reload 刷新
supervisor> status 查看服务状态
supervisor> status
nginx RUNNING pid 850, uptime 24 days, 21:43:18
running正常运行
4、上述操作是在supervisord会话中交互式执行,也可使用supervisorctl 命令直接对服务做停止或启动操作
单一服务管理
# supervisorctl -u用户 -p密码 start nginx
# supervisorctl -u用户 -p密码 status
# supervisorctl -u用户 -p密码 reread
5、登陆 127.0.0.1:9095
输入web的用户密码正常看见,管理本地安装的服务
添加后台java服务监控
如果command使用startup需要修改配置文件, tomcat 的 startup.sh 脚本是daemon方式的,如果不做修改的话,supervisord 会一直报错
vim startip.sh
在最后一行将
exec "$PRGDIR"/"$EXECUTABLE" start "$@" 改为
exec "$PRGDIR"/"$EXECUTABLE" run "$@"
vim tomcat-admin.ini
[program:admin]
command=/usr/local/apache-tomcat-admin/bin/startup.sh
environment=JAVA_HOME="/usr/local/java",JAVA_BIN="/usr/local/java/bin/"
directory=/usr/local/apache-tomcat-admin/webapps/
user=root
startsecs=5
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tomcat-admin.log
stdout_logfile_backups=5
或者直接用 就不需要修改红字部分
[program:admin]
command=/usr/local/apache-tomcat-admin/bin/catalina.sh run
environment=JAVA_HOME="/usr/local/java",JAVA_BIN="/usr/local/java/bin/"
directory=/usr/local/apache-tomcat-admin/webapps/
user=root
startsecs=5
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tomcat-admin.log
stdout_logfile_backups=5