#!/bin/bash # 進程名,,可以根據(jù)需要修改process_name="your_process_name"# 日志文件路徑,,可以根據(jù)需要修改 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") )) # 如果重啟時間間隔超過設(shè)定的閾值(例如:300秒),則記錄日志并退出 if [ $$restart_interval -gt 300 ]; then echo "進程 $$process_name 已重啟,,記錄日志到 $$log_file" >> $$log_file exit 0 fi |
|