2015-10-16 99 views
-2

我需要寫一個的bash腳本殺Linux服務器上運行的所有程序,然後重新啓動它們,最好在一分鐘後重新啓動。bash腳本殺死所有的程序和一分鐘

我是新來的bash腳本。請幫忙。

+0

所有程序?爲什麼不重新啓動? – chepner

+1

歡迎來到Stack Overflow。請編輯您的帖子,幷包括您迄今爲止嘗試過的內容。 –

+0

要小心,不要殺死那些需要你的linux OS..also的運行程序重新啓動程序時,你需要知道什麼編程語言與這樣就可以重新啓動他們創造你的程序成功 – repzero

回答

1

你可能想要的是寫殺死你的服務的腳本。然後是啓動它們的第二個腳本。設置你的crontab在第n分鐘運行第一個腳本,然後在n + 1運行第二個腳本。這應該清除現有的程序並在一分鐘後啓動它們。

+0

大多數服務將有一個推薦的方法來關閉它們,甚至是一個crontab行示例。 @ user3270763您可能會嘗試閱讀您感興趣的每項服務的文檔;對於每個額外的文檔/服務,概率接近100%,至少其中一個人會爲您提供符合您需求的「正確」答案,或許您會在這裏找到更好的答案! – jpaugh

1

殺死所有的程序會......不好......在系統崩潰可能。但是,如果你是這樣的傾向:

#!/bin/bash 

processes=`ps aux -A --no-heading | grep -v "NameOfThisScript" | awk '{print $2}'` 

for i in $processes; do 
    sudo kill -9 $i 
done 

哎呀,忘了部分有關重新啓動他們...

+0

那時,爲什麼不'telinit 1',後面跟着'telinit 5'? ;-)(另外,我會永遠* *使用'-9'在這樣一個反覆無常的方式。) – jpaugh

+0

我同意日'-9'但OP說他想殺**所有**程序。從邏輯上講,這將包括否則將被阻止的。 –

+0

一個人應該只使用'-9'作爲行爲不端的程序,而不是全部。最好發送一個術語信號,然後休息幾秒鐘,然後「殺死-9」。這讓程序有機會清理並正常結束,然後突然殺死它們。 – jpaugh