2016-03-02 101 views
1

爲了我的VPS連接回我家的電腦我有我家的電腦上運行此腳本:爲什麼我的分離循環最終會被殺死?

{ while true ; do ssh -nNR 1234:localhost:22 [email protected] ; sleep 300 ; done ; } & disown 

它開始反向的SSH隧道。如果連接因爲任何原因而中斷,則連接在5分鐘後重新啓動。這似乎起初運行良好,但後來我發現循環最多隻能持續運行幾天。

爲什麼它會停止或被殺?

+0

幾天後會發生什麼?你可以從'ps'看到bash/ssh嗎?我問的是,也許這只是'ssh'掛起(有時會發生) –

+0

@AndreaCorbellini我看到的只是該進程不再運行(不能再使用'ps'找到它) – StackedCrooked

+0

你可以嘗試更改命令到'ssh -nNR 1234:localhost:22 [email protected]&>>/tmp/sshtunnel.log'並查看是否打印了任何有趣的內容?如果'/ tmp/sshtunnel.log'中沒有任何內容顯示,則還可以添加'-v'標誌來打印調試消息。 – Tim

回答

0

檢查如何ssh命令已經通過這個循環中調用許多過程,你可能需要添加下列選項中的SSH命令行:

-o ExitOnForwardFailure=yes 

檢查autossh這是工作的更好。我在家用電腦下使用autossh + Cygwin,可以在辦公室和家中連接好幾天而不會中斷。

相關問題