说明
Supervisor翻译过来是监管人,在Linux中Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类Linux/unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
ta是用Python开发的一套通用的进程管理程序( C/S 模型),可以方便的启动、重启、关闭单个或多个进程(包括非 Python 进程)。
ta是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。
supervisor安装
1.安装supervisor,yum方式安装
yum install python-setuptools
yum install supervisor
easy_install supervisor
2.配置supervisor,创建目录:
mkdir /etc/supervisor
3.通过 echo_supervisord_conf 程序,来初始化一个配置文件:
echo_supervisord_conf > /etc/supervisor/supervisord.conf
4.打开supervisord.conf文件
cd /etc/supervisor
vim supervisord.conf
5.在supervisord.conf最下面添加下面的两行,指向指定的文件夹
[include]
files = /etc/supervisor/conf.d/*.ini
6、创建supervisor.sock
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
7.在/etc/supervisor目录下创建一个文件夹conf.d:
mkdir /etc/supervisor/conf.d
8.在该目录下新建一个api.ini文件,名字随意,内容参照下面。
cd /etc/supervisor/conf.d
vi api.ini
[program:api]
command=dotnet /home/api/Sunc_Web_Api3.0/Sunc_Web_Api3.0.dll
directory=/home/api/Sunc_Web_Api3.0/
autostart=true
autorestart=true
startretries=10
startsecs=1
user=root
priority=999
stderr_logfile=/home/log/api.err.log
stdout_logfile=/home/log/api.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
stopsiginal=INT
9.创建文件夹
mkdir /home/api
mkdir /home/log
10.启动supervisor服务,以root身份运行
supervisord -c /etc/supervisor/supervisord.conf
11.配置supervisor开机启动
进入/usr/lib/systemd/system/目录,并创建supervisord.service文件(或者在本地写好了再通过ftp工具传输到指定目录下)
cd /usr/lib/systemd/system/
vi /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=40s
[Install]
WantedBy=multi-user.target
设置开机启动,正常配置会有一个返回值
systemctl enable supervisord.service
检测一下是否是自动重启的
systemctl daemon-reload
systemctl is-enabled supervisord
出现enabled代表是可以自动重启的,然后电脑重启,测试是否可以开机自启
12.supervisor的网页端显示
cd /etc/supervisor
vim supervisord.conf
然后重启系统,就可以在网页上输入: http://*****:9001 输入账户密码就显示出来了。
supervisor卸载
supervisor卸载(yum方式)
yum -y remove supervisor