使用 supervisor 管理监控进程
有时我们会在 Linux 服务器上安装运行一些非服务方式启动的程序,如 Python 程序或 nodejs 程序等,他们无法可靠的保持运行,也无法在出现错误后自动重启。这时我们就需要 Supervisor 来监控程序的运行,在意外终止时自动重启程序。
Debian 软件源已自带 Supervisor ,直接使用 apt 安装即可:apt-ge install supervisor。
安装完成后需要创建配置文件,进入 /etc/supervisor/conf.d 目录后,新建一个配置文件,如:example.conf,内容如下:
[program:ss]
command=bash /root/ssmgr.sh
autorestart=true
directory=/root
startretries=10000
user=root
redirect_stderr=true
stdout_logfile=/root/ss.log
stderr_logfile=/root/ss.log
其中,program 为程序的名称,command 为需要执行的命令,如果需要在程序退出后自动重启,设置 autostart=true 即可;directory 为程序运行目录,startretries 可以设置启动失败时的尝试次数;user 则是进程运行的用户身份。如果还需要开启日志,按照以上配置填写最后三行即可。
为了更方便的远程管理 Supervisor ,我们还可以开启其自带的 web 控制台。打开 /etc/supervisor/supervisord.conf ,在文件末尾增加以下内容:
[inet_http_server]
port=*:5000
username=user
password=123
其中,port 为监听端口,username 和 password 分别为帐号和密码。保存文件后需要重启 Supervisor:service supervisor restart,即可通过 5000 端口访问 web 控制台了。
如需通过 shell 来管理 supervisor ,可以使用以下命令:
supervisorctl start appname #启动特定程序
supervisorctl stop appname #停止特定程序
supervisorctl restart appname #重启特定程序
supervisorctl start all #启动所有程序
supervisorctl stop all #停止所有程序
supervisorctl restart all #重启所有程序
最后需要注意的是,如果使用 Supervisor 监控 shell 脚本,不能在脚本中完全使用 nohup, setsid 等后台运行命令,否则 supervisor 会误认为程序自动退出而不断重启脚本。
相关文章
- 解析数据中心监控系统功能作用
- zabbix监控端界面时间与服务器时间不对应
- Zabbix与乐维监控对比分析(三)——对象管理篇
- 驱动开发:监控进程与线程对象操作
- 腾讯云windows cpu mem 进程监控
- prometheus监控进程数据-process-export
- 宝塔面板解锁Nginx防火墙及网站监控报表
- Linux基础:进程管理实时监控控制
- Linux系统中的进程监控(进程监控linux)
- Linux守护进程实时监控的全景.(linux守护进程查看)
- Linux实时监控进程 从技术角度确保安全(linux监视进程)
- Oracle进程监控:深入探究进程情况(oracle进程查看)
- 监控使用 SQL Server 监控进程(sqlserver进程)
- Linux查看当前带宽:实时监控带宽利器(linux查看当前带宽)
- 25个字的文章标题:5款实用的Linux进程监控工具(linux监控进程工具)
- 基于 Linux 的进程监控脚本编写(linux 进程监控脚本)
- 使用Linux监控网站流量:如何更好的了解你的用户访问情况(linux监控网站流量)
- Linux 进程监控:让系统更安全(linux 进程 监控)
- 查看Redis进程实时监控Redis状态(查看当前redis的进程)
- 于月仙车祸事发地增设测速监控:限速值为80公里/小时
- Iframe自适应高度并实时监控高度变化的js代码
- 写了个监控nginx进程的Python脚本