#!/bin/bash # 进程名,可以根据需要修改process_name="your_process_name"# 日志文件路径,可以根据需要修改 log_file="/var/log/process_monitor.log" # 获取当前进程ID current_pid= $$(pgrep -f $$process_name) # 如果进程不存在,则记录日志并退出 if [ -z " $$current_pid" ]; then echo "进程 $$process_name 已重启,记录日志到 $$log_file" >> $$log_file exit 0 fi # 获取进程的启动时间戳 start_time= $$(ps -p $$current_pid -o etime=) # 检查进程是否在运行,如果不在运行,则记录日志并退出 if ! ps -p $$current_pid > /dev/null; then echo "进程 $$process_name 已重启,记录日志到 $$log_file" >> $$log_file exit 0 fi # 计算进程重启的时间间隔(秒) restart_interval= $$(( $$(date +%s) - $$(date +%s --date="@ $$start_time") )) # 如果重启时间间隔超过设定的阈值(例如:300秒),则记录日志并退出 if [ $$restart_interval -gt 300 ]; then echo "进程 $$process_name 已重启,记录日志到 $$log_file" >> $$log_file exit 0 fi |
|