[英]Shell Script Not Starting Service
我有一個非常基本的Shell腳本,用於檢查給定的服務,然后查詢該服務以了解該服務是否正在運行。 如果服務未運行,它將嘗試重新啟動服務。 但這是行不通的。 當我停止服務時。 即使服務未運行,它也永遠不會輸入“ if”部分。 退出狀態為“ 0”時,我檢查終端中的輸出,但不是“ 0”,但仍不會進入“ if”部分。 我想念什么? 任何幫助表示贊賞
#!/bin/bash
#checking for apache
service="sshd"
whie [ 1 ]
do
ps -e | grep $service
if [ $? -ne 0 ]; then
service ssh start
fi
sleep 3
done
流程管理是一項復雜的業務,但也可以使其非常簡單。 在您的情況下,您只需要一個腳本來確保服務已啟動並保持運行,就可以通過弄清楚實際運行哪個命令/etc/init.d/sshd
並將其插入此腳本來完成此操作:
while true
do
[command from /etc/init.d/sshd]
done
PS:正如@CharlesDuffy指出的那樣 ,您首先要檢查進程是否守護進程(在后台運行,立即返回)。 如果是這樣,則必須修改命令,以免發生這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.