关机时友好地断开 ssh 连接?

关机时友好地断开 ssh 连接?

我最近从 Raspbian Jessie(具有完整的 UI)和 Jessie-Lite(精简且仅 CLI)切换。我通过 ssh 连接,并且经常搞乱配置并重新启动我的 Raspberry Pi。有了完整的 Jessie,我就可以发送sudo shutdown -r now,并且我的 ssh 连接(来自 OSX Sierra)将收到一个信号,表明它正在断开连接并在客户端关闭。

然后我切换到 Jessie-Lite,同样的事情(sudo reboot也这样做)只会让 ssh 挂起,最终在很长一段时间后让我能够按 Ctrl-C,它给我一个损坏的管道消息。我什至没有意识到这种行为是由于额外的东西或配置造成的!但现在这真的很烦人,如果我不想等待,我就必须关闭我的终端。

什么是魔法酱?我缺少什么以及如何安装或配置它才能恢复友好的断开连接行为?

(注意 - 我的过渡还包括从内核 4.9 迁移到 4.4)

答案1

谢谢@DevilaN 给我指点对此类似问题的回答!这让我走上了正确的道路。这里为那些登陆此处寻求帮助的人提供了一些更多信息。

“缺少酱汁”是一个 SIGTERM 信号,这可以防止我的 ssh 客户端挂起,而是指示它应该关闭。它通过以下消息执行此操作:

Connection to 192.168.0.99 closed by remote host.
Connection to 192.168.0.99 closed.

SIGTERM 是终止通知。为了发送它,需要在 Jessie Lite 附带的普通系统上安装更灵活的登录管理器。这是随systemd-logind软件包一起安装的,而软件包又可以通过 进行管理loginctlsystemd-logind用于响应睡眠硬件开关,可以让其他应用程序中断关闭过程,并有助于多用户会话,包括用户连接的服务。不难理解为什么像 Raspbian Jessie 这样的 Linux UI 发行版会选择使用它。

还需要dbus用于消息分发,例如处理 SIGTERM 消息,并帮助多个用户进行会话级登录。

正如另一个答案中所述,在关闭时启用此友好消息的单行是:

sudo apt-get install libpam-systemd dbus

如果有人可以扩展(或更正!)任何此信息,请这样做!

相关内容