我是unix/linux的新手,需要一個shell腳本來啓動一個程序,如果它沒有運行的話。該程序的名稱是「literaail」,它在服務器上有一個位於「/local/publish/mtc_preprint/util/Literail.log」的日誌。這個程序應該打印這個「啓動ftp檢查Get_Job1」。聲明每30秒一次。如果沒有,我需要一個shell腳本來啓動這個過程。目前我做它使用這些命令手動:帶有cron作業的Shell腳本在未運行時啓動程序?
ps -ef | grep ftp_util_mtc_pp.sh
ps -ef | grep literail (this command lists the jar file related to the literail program)
kill "parentjobnumber" "childjobnumber"
./ftp_util_mtc_pp.sh & (this command restarts the process).
我有一個「ftp_util_mtc_pp.sh」的文件,這個文件中,我有以下命令:
#!/bin/bash
utildir="/local/publish/mtc_preprint/util"
cd $utildir
java -jar LiteRail_3.0.1.jar literail.properties > /dev/null 2>&1
exit
有人可以幫助我的shell腳本。謝謝。
已嘗試查找過程編號(如果存在):PROCESS_NUM ='ps -ef | grep「$ 1」| grep -v「literail」| wc -l'如果沒有運行java – Jay 2014-11-21 13:44:50
@MoeEhsani我不知道,literail是什麼,但請記住,其他用戶進程可能會被計算在內。 – 2014-11-21 14:33:37
整個問題在某種程度上被誤導 - 使用shell腳本輪詢流程表本身不是確保流程或服務繼續運行的最佳方式,而是根據問題假定問題。 – 2014-11-21 16:43:10