2013-01-11 71 views
1

我有一個包含302個命令的文件,可以在我們的服務器上啓動進程。立即將它們全部盯住會殺死它,所以我有一個腳本將一個命令推送到shell,等待該過程完成,然後再調用下一個命令。在批處理腳本上做nohup或disown工作嗎?

這整個過程大概需要一天左右的時間完成的,我想在這兩者之間註銷。我知道有nohup或者,如果你忘了,剛開始時,disown,以確保過程仍將運行,即使你關閉連接,但我不知道我應該把我的情況下調用。只有引導命令的腳本;只在命令上;或兩者?

我道歉,如果這是一個愚蠢的問題,但我不能在網上找到一個簡單的答案正是的問題,我不能冒險破壞這些過程只是因爲我得到了一些錯誤。

+0

Linux批處理?你的意思是一個bash shell腳本嗎?我甚至不想問爲什麼你有一個運行302進程的腳本。 – PenguinCoder

+0

你不能讓「system_root」啓動腳本嗎?你也可以改變誰留在機器開啓 – Vogel612

+0

http://stackoverflow.com/questions/3099092/why-cant-i-use-unix-nohup-with-bash-for-所有的時間記錄的所有權@root循環?rq = 1有您可以使用的示例。聽起來像@msw會爲你工作。 – slimdrive

回答

2

當然您也可以使用nohup的:

nohup <script name> & 

您可以執行此命令和安全註銷。然後,您可以重新登錄並使用ps命令查看腳本是否仍在運行。我還會創建一個日誌文件,以便能夠監視進度並將所有標準錯誤輸出重定向到該文件。

+0

在bash中,可以簡單地執行'(

0

你可以安排你的腳本來運行,這樣就不必在過程中運行連接到服務器做。 請參閱cron幫助:http://www.scrounge.org/linux/cron.html

+0

聽起來像一個很好的解決方法,但因爲我想開始它「臨時」,可以這麼說,它可能有點太多了。 –