如何創建腳本來檢查進程是否正在運行以及何時未運行時執行一行代碼?讓腳本每分鐘檢查一次?檢查進程是否正在運行,如果沒有運行的腳本執行代碼行
我在想是這樣的:
#! /bin/bash
case "$(pidof Program.exe | wc -w)" in
0) echo "Restarting Program: $(date)" >> /var/log/ProgramLog.txt
(mono-runtime Program.exe -option1 yes -option2 no -option3 6; 1) &
;;
1) # all ok
;;
*) echo "Removed double Program: $(date)" >> /var/log/ProgramLog.txt
kill $(pidof Program.exe | awk '{print $1}')
;;
esac
0:如果沒有找到處理執行代碼
1:如果過程中發現什麼都不做
*:如果有發現超過1個過程停止最後一個過程
有2個要執行的代碼:
單運行的Program.exe -option1是-option2沒有-option3 6
和分號後面:1
這是做正確的方式?: (單運行的Program.exe - option1是-option2否-option3 6; 1)&
我寧願建議一些鎖機制,例如,打開一個套接字,創建一個私人MMAP,從program.exe中鎖定一個特定的臨時文件等。如果該鎖獲取失敗,則不做任何事情就退出。 &在你的bash腳本中,只需觸發新的啓動過程。 – anishsane 2014-10-07 13:54:05
@anishsane這是爲了更仔細嗎? – Zero 2014-10-07 15:09:29