Linux 使用 monit 监控程序运行

本文介绍了如何在Ubuntu 18.04上使用monit监控程序,包括安装、配置、日志查看,以及创建脚本来检查和重启程序。详细讲解了配置文件的修改、启动和停止服务的命令,以及解决启动终端问题的方法。
摘要由CSDN通过智能技术生成

1. 测试环境

Ubuntu 18.04
内核:55.0.0.36-generic

2. 安装软件

apt-get install monit
该程序会开机自动运行。
该程序帮助文档:
https://mmonit.com/monit/documentation/monit.html

3. monit配置文件

vim /etc/monit/monitrc
第19行左右:
set daemon 120
这里默认是120s,表示每120秒检查一下被监视的程序状态。可以改小一点。例如,改成6啥的。
启用web服务,在第159行左右:

    set httpd port 2812
	use address localhost
	allow localhost
	allow admin:monit

至少去掉上面四行注释。这样,启动服务后,它会自动在后台运行http服务,显示各程序状态。这里是默认配置,即在浏览器打开 localhost:2812 就可以访问,而登录时,账号是admin,密码是monit

4. monit服务启动与停止

每次修改完配置文件后,若要新配置生效,必须重启monit服务。
重启命令:systemctl restart monit
停止命令:systemctl stop monit
启动命令:systemctl start monit
查看当前服务状态:systemctl status monit
如果启动后,报错,提示不能启动,往往是配置文件写错了。使用查看当前服务状态命令,可以看到是哪里写错了。
注意:此服务会开机自启动。

5. 关闭或开启开机自启动

关闭开机自启动:systemctl disable monit
开启开机自启动:systemctl enable monit
注:当程序正在后台运行时,关闭开机自启动操作,并不会关闭在后台运行的那个进程。

6. 查看monit的日志

默认日志存放位置为/var/log/monit.log,此位置似乎可在上述配置文件中配置。

7. 如何监控自己的程序(当看门狗使用)

此处为示例。
需求:有一个待监视的程序,需要保证它一直在执行,不论是正常退出,还是出现segmentation fault 等情况导致退出,需要将其重启。
思路:写一个脚本,检查程序是否还在,不在就启动它。然后利用monit定时执行的功能,定时调用这个脚本进行检查即可。

(1) 待监控的程序示例

该示例程序如下:
程序名 Watched.cpp

#include <iostream>
#include <thread>
using namespace std;

#include <unistd.h>
#include <stdlib.h>
#include <time.h>

void raiseSegmentationFault(void)
{
   
    cout << "Segmentation Fault Exit." << endl;
    int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值