简介
介绍两种常用的进程监控方式:monit和systemctl
目的
尽可能保证进程不中断,需要做到如下两点
- 进程意外退出后能够被重新拉起
- 进程所在机器意外重启后能够自动运行该进程
monit
步骤
- 安装及配置monit
详见:monit服务监控 - 在/etc/monit.d下创建需要监控的进程文件
例如监控进程test.pid, 过程如下
vim /etc/monit.d/test(内容如下)
check process test with pidfile /var/run/test.pid
start program = "/usr/local/test/runtest.sh"
if does not exist then start
start program 表示启动test需要执行的命令
3. 直接运行monit
命令即可
4. 增加新的监控任务
如果已经在运行monit进程,但是想为test1进程也增加监控需要进行两步:
步骤一:直接在/etc/monit.d下新增test1文件,内容如下
vim /etc/monit.d/test1(内容如下)
check process test with pidfile /var/run/test1.pid
start program = "/usr/local/test1/runtest.sh"
if does not exist then start
步骤二:执行monit reload
systemctl
cd /usr/lib/systemd/system
vim test.service (内容如下)
[Unit]
Description=test something
After=network.target
[Service]
LimitNOFILE=100000
Type=simple
ExecStart=/usr/local/test/runtest.sh
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
#Alias=test.service
chmod a+x test.service
systemctl start test
systemctl status test