題:
SSH連接死機後如何解凍終端?
Dave
2015-03-07 04:01:50 UTC
view on stackexchange narkive permalink

我正在使用帶bash shell的Mac 10.9.5。有時,當我ssh進入另一台計算機然後斷開連接(例如Internet斷開或我移至新位置)時,終端窗口會打開SSH會話處於凍結狀態,我似乎能夠繼續前進的唯一方法是關閉它並開始一個新會話。

是否可以通過某種方式進行配置,使得如果SSH會話的連接中斷,我將回到我正常的bash shell,就像執行SSH命令之前一樣?

嘗試在〜/ .ssh / ssh_config中配置ServerAliveCountMax和ServerAliveInterval。
@ScottDudley您可以提供更多詳細信息嗎?
@phatmann例如如果使用“ ServerAliveCountMax 4”和“ ServerAliveInterval 15”,則SSH客戶端在4 * 15 = 60秒後仍未收到服務器的響應,則應自動斷開連接。有關更多詳細信息,請參見[手冊頁](http://linux.die.net/man/5/ssh_config)。
更多信息https://apple.stackexchange.com/questions/35524/what-can-i-do-when-my-ssh-session-is-stuck
一 回答:
Ian C.
2015-03-07 04:28:36 UTC
view on stackexchange narkive permalink

您可以先掛起,然後掛斷 ssh 進程。為此,您必鬚髮出轉義序列,暫停 ssh 進程,然後使用 kill -9 終止該進程。

默認OS X附帶的ssh的轉義鍵字符。您必須在換行後立即輸入它,以便ssh尊重它。然後使用鍵序列 Control kbd>- z kbd>掛起bash中的任務並使其後台運行。

因此請嘗試以下鍵序列:

返回 kbd>

〜 kbd>

Control kbd>- z kbd>

如果可行,您將看到類似的內容:

  myhost.local:〜| ruby​​-2.2.0 | > ssh someremotehost最後登錄:Fri Mar 6 14:15 :28 2015 from myhostsomeremotehost:〜| ruby​​-2.2.0 | >〜^ Z [suspend ssh] [1] + 48895懸浮的ssh myremotehost  

此行輸出:

  [1] + 48895暫停的ssh myremotehost  

告訴您計算機上 ssh 進程的進程ID。在此示例中為 48895 。該過程仍在運行,只是被暫停併後台運行。您需要殺死它。

您可以使用 kill 命令執行此操作。您想以偏見殺死它,因此在調用 kill 時使用 -9 選項,如下所示:

  myhost.local:〜| ruby-2.2.0 | > kill -9 48895 [1] + 48895 kill ssh someremotehost  

只需使用您的 ssh code的PID >當您調用該命令代替我上面使用的 48895 PID時進行處理。

您將得到提示。

或者,可以打開第二個“終端”窗口,並使用 ps 在進程列表中找到 ssh 進程,並對PID發出 kill -9 調用。但是,這樣會破壞將提示返回到原始“終端”窗口的過程,不是嗎?



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...