2012-09-02 119 views
3

我正在使用SSH遠程啓動Amazon Web Service上的Tornado。它工作正常,當我通過啓動它:我終止遠程會話後,Tornado立即停止在AWS上運行

蟒蛇startTornado.py

然而,在我的SSH會話超時或終止,龍捲風服務器也立即停止,所以我不能再訪問該網頁。我做了一些搜索,但在Google上找不到答案。

我的SSH會話終止後,我該如何保持Tornado和網站運行?

回答

4

當您註銷時,如果進程在前臺運行,或者如果它嘗試寫入標準輸出以及它輸出的終端不再存在,該進程將關閉。嘗試用

nohup python startTornado.py & 

nohup命令輸出重定向到一個文件,並且&在結束在後臺運行的命令啓動服務器。或者,您可以使用屏幕實用程序,它允許您分離終端並將其重新掛接到不同的ssh會話中(有關詳細信息,請參閱屏幕手冊頁)。

+0

感謝凱文,這工作得很好。我認爲如果輸出文件填充有錯誤,麻煩就會出現。 – lichen19853

1

除了nohup凱文已經提到的,你也可以使用disown命令,如果你使用bash:

disown <job-id> 
+0

謝謝凱。從disown文件看來,它似乎不需要輸出文件嗎?這將解決錯誤日誌過多的問題。 – lichen19853

+0

@ lichen19853沒問題:)我不確定你的意思,'disown'需要一個參數,它是工作的ID。 –

3

雖然所有上述解決方案解決眼前的問題,你可能真的需要運行這樣的生產過程中,控制它們(啓動/重啓/停止)爲supervisor。它是基於python的,當你必須在nginx後面運行多個龍捲風實例時,它更加有用。