我是新的Shellscript,我收到一些問題。我需要一個腳本來檢查服務是否正在運行,如果它沒有運行,並且不存在該標誌,則啓動所有服務。我做錯了什麼?Shellscript - 檢查運行服務
#!/bin/bash
file= "$PIN_HOME/apps/DE_BILL_MI_BRM/alarmistica/flags/intervencao.flag"
# Check if services are running
for service in $BRM_SERVICES
do
if [ps -ef | grep $service | grep -v grep | awk 'NR>1{for (i=1;i<=NF;i++)if($i==1) print "Services not running", i}' ]; then
echo $service " is not running correctly"
else
if [ -f "$file" ]; then
echo "Flag exists. The service will not start"
else
echo "$file not found. Starting all services"
pin_ctl start all
fi
fi
done
當($i==1)
,服務沒有運行!
但結果並不對應。例如,當服務關閉時,腳本不會啓動服務...
什麼是'$ i'?另外,你是否定義了'$ BRM_SERVICES'?不在此代碼中。 – Hogan
你爲什麼不使用'pidof $ service'或'ps -C $ service'? –
至少,你有兩個間距錯誤:'file =「$ PIN ...」和'如果[ps -ef ...'是必需的。 – chepner