我想設置一個腳本,它將連接到Linux服務器,然後停止/啓動服務。但是在停止和開始服務之間,它應該等待~10秒,並檢查服務是否真的停止。如何連接到Linux服務器並使用shell腳本停止/啓動服務
service httpd stop
--wait 10 seconds. check ps -ef | grep httpd, kill if any hanged processes
service httpd start
請能有人幫我該怎麼辦呢
我想設置一個腳本,它將連接到Linux服務器,然後停止/啓動服務。但是在停止和開始服務之間,它應該等待~10秒,並檢查服務是否真的停止。如何連接到Linux服務器並使用shell腳本停止/啓動服務
service httpd stop
--wait 10 seconds. check ps -ef | grep httpd, kill if any hanged processes
service httpd start
請能有人幫我該怎麼辦呢
的wait
命令是用於不同的目的,我們需要使用sleep
命令。
查看此鏈接瞭解詳細的差異。 https://stackoverflow.com/a/13296927/3086531
腳本檢查進程正在運行或不
#!/bin/bash
UP=$(pgrep httpd | wc -l);
if [ "$UP" -ne 1 ];
then
echo "httpd is down.";
else
echo "All is well.";
fi
你的最終代碼會
#!/bin/bash
service httpd stop
sleep 10
UP=$(pgrep httpd | wc -l);
if [ "$UP" -ne 1 ];
then
service httpd start #start serivce again, since no process are found
else
echo "Service is not stopped yet.";
killall -15 httpd #Kills all processes related to httpd
service httpd start #start httpd process
fi
使用'sleep'和'殺-9'而不是明確的檢查。 – arkascha
我可以使用用戶名和密碼連接到服務器嗎?我正在檢查表格,但大多數人都說創建一個ssh密鑰。我將在同一臺服務器上部署此shell腳本,我希望運行這些命令 –
您當然可以配置ssh服務器以接受密碼。但不建議這樣做,因爲它比密鑰更不安全。而且你只能以交互的方式做到這一點,所以不用腳本。至少你不應該。 – arkascha