Background
- supervisor是用Python语言开发的一套通用的进程管理程序,可以将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时可以自动拉起;
- 可在大多数unix系统上使用,不能在windows上运行;
- 目前兼容的python版本为python2.7和python3.4及以后;
- 之前的文章有介绍在线安装的方法:【Centos7安装配置【supervisor】【glances】【自动化脚本】】
- 我们这里介绍一中离线安装目前最新版
supervisor-4.2.5
,基于python3.7.8
;具体步骤如下
1、首先得有个python3.7.8的环境
2、先在能上网的电脑上下载setuptools
和supervisor
3、上传到不能上网的目标服务器上解压安装
tar zxf setuptools-69.0.0.tar.gz
cd setuptools-69.0.0/
python3 setup.py install
tar zxf supervisor-4.2.5.tar.gz
cd supervisor-4.2.5/
python3 setup.py install
ln -s /usr/local/python3/bin/supervisord /usr/bin/supervisord
ln -s /usr/local/python3/bin/supervisorctl /usr/bin/supervisorctl
ln -s /usr/local/python3/bin/echo_supervisord_conf /usr/bin/echo_supervisord_conf
supervisorctl -h
4、在目标服务器上配置supervisor
mkdir -p /etc/supervisord.d
touch /etc/supervisord.d/java.ini
touch /etc/supervisord.d/shell.ini
echo_supervisord_conf > /etc/supervisord.conf
cat << EOF >> /etc/supervisord.conf
[include]
files = supervisord.d/*.ini
[inet_http_server]
port=*:9001
username=admin
password=123456
EOF
cat << EOF >> /etc/supervisord.d/default.base
[program:anti_seismic_city-1.0]
directory=/root/projects/anti_seismic_city/server
command=java -Xms2048m -Xmx2048m -jar anti_seismic_city-1.0-SNAPSHOT.jar
numprocs=1 ; 启动几个进程
autostart=true ; 随着supervisord的启动而启动
autorestart=true ; 自动重启
startretries=10 ; 启动失败时的最多重试次数
exitcodes=0 ; 正常退出代码
stopwaitsecs=10 ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 重定向stderr到stdout
stopasgroup=true ; 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true ; 默认为false,向进程组发送kill信号,包括子进程
;
;
;
EOF
5、在目标服务器上启动supervisor
cat << EOF >> /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
[Install]
WantedBy=multi-user.target
EOF
systemctl start supervisord
systemctl enable supervisord
6、浏览器访问 9001端口,输入配置的用户名密码就可以看到下图