关闭打开 SSH 会话的终端

关闭打开 SSH 会话的终端

我在 SSH 会话期间仍登录到远程服务器时关闭了终端(exit在关闭终端之前我没有这样做)。

这会损坏服务器吗?可能造成什么后果?

答案1

只要您没有运行对系统进行更改的程序(更新、fsck 等),它就不会损坏任何东西。

如果它只是一个空闲的 shell 会话,那么不会造成任何损害。

将来,如果你需要对破坏性的系统进行更改,你可以使用GNU 屏幕或者tmux使您的会话保持运行并能够稍后重新连接。

答案2

如果您在 shell 处,并且没有后台子进程仍然附加到 shell,那么应该没有问题。

它不会对服务器造成任何损害。它与在 OS X 或 Linux 中关闭终端窗口而不输入 exit 相同。shell 会检测到管道断开连接并自行退出。这实际上是关闭 shell 的可接受方式。许多其他程序也允许这样做,例如“Top”及其变体。

但是,请记住,关闭 ssh 基本上就是结束您的会话,因此,如果程序不能中断而不会对服务器造成损害,那么这样做是不安全的。例如,如果您不能使用 CTRL-C 安全地停止操作,那么您就不能退出。

此外,有些程序在父进程死亡或管道断开时无法正常退出,从而留下滞留的进程。在这种情况下,您只需重新登录并手动终止它们。通常,像这样断开连接被认为是不好的做法,因为很难重新连接到这样的程序并再次与其交互。相反,您需要找到一种方法来分离程序或将其守护进程化。Screen 是执行此操作的传统方法,但现在有很多其他选择,其中许多可以增强您的终端,因此请选择您喜欢的那个。

相关内容