[轻笔记] ubuntu Shell脚本实现监视指定进程的运行状态,并能在程序崩溃后重启动该程序
2023-09-27 14:20:42 时间
根据网上博客实现,发现只能监测进程离线,然后对其进行重启;然而,脚本无法打印程序正常状态的信息。自己通过不断修改测试,发现问题主要在重启程序的命令上(需要让重启的程序在后台运行,不然会影响监视脚本进程,使其无法正常工作)。具体程序如下:
#!/bin/bash
while [ 1 ] ; do
sleep 3
if [ $(ps -ef|grep exe_name|grep -v grep|wc -l) -eq 0 ] ; then # 将exe_name替换成你想要监测的可执行程序名字
sleep 1;
echo "[`date +%F\ %T`] exe_name is offline, try to restart..." >> ./logs/check_es.log;
./exe_name & # 将exe_name替换成你想要监测的可执行程序名字
else
echo "[`date +%F\ %T`] exe_name is online..." >> ./logs/check_es.log;
fi
done
note:
- 在后台运行shell脚本,只需在可执行文件后添加&,例如:
./exe_name &
- 如果不想把程序的打印信息输出到该终端,只需在可执行文件前添加nohub,例如:
nohup ./exe_name
相关文章
- Linux进程管理与计划任务学习思维导图
- linux如何查看端口被哪个进程占用?
- Linux:系统进程---->查看命令【ps:静态查看进程】【top:动态查看进程】
- Linux系统编程-线程(一):概述【进程是CPU分配资源的最小单位、线程是操作系统调度执行的最小单位】【进程是一个资源管家负责从系统要资源,线程是干活的苦力;一个进程完成一项工作,最少需要一个线程】
- Linux进程之Fork函数
- 【云计算】Docker 多进程管理方案
- 使用多进程、多线程、gevent完成http服务器
- 初始操作系统之进程
- Linux下使用ps命令来查看Oracle相关的进程
- RAC5——11gR2以后GI进程的变化
- 【Binder 机制】进程通信-正常情况 | 进程通信- mmap 内存映射 | Binder 机制重要组件
- 嵌入式 Linux进程含义知多少
- 进程互斥和同步的笔记
- [linux]杀死同一个应用的所有进程
- C++windows内核编程笔记day13 进程、线程与信号量