注销 Erlang VM 的 SSH 会话,无需停止 VM 或留下过时的进程

发布于 2024-08-27 11:41:03 字数 323 浏览 4 评论 0原文

我有一个作为守护进程运行的 Erlang 应用程序,配置为 SSH 服务器。我可以使用 SSH 客户端连接到它,并获得标准的 Erlang REPL。

如果我“q()”。我关闭了 Erlang VM,而不是连接。 如果我关闭连接(OpenSSH 为“~.”,请关闭 PuTTY 中的窗口),某些进程仍保留在 sshd_sup/ssh_system_xx_sup 树下。这些似乎是过时的 shell 进程。

我在 shell 模块中没有看到任何可以让我关闭 shell(以及 SSH 连接)而不影响整个虚拟机的导​​出函数。

我应该如何注销 SSH 会话以避免在虚拟机中留下过时的进程?

I have an Erlang application running as a daemon, configured as an SSH server. I can connect to it with an SSH client and I get the standard Erlang REPL.

If I 'q().' I shut down the Erlang VM, not the connection.
If I close the connection ('~.' for OpenSSH, close the window in PuTTY) some processes remain under the sshd_sup/ssh_system_xx_sup tree. These appear to be stale shell processes.

I do not see any exported function in the shell module that would let me shut down the shell (and therefore the SSH connection) without affecting the entire VM.

How should I be logging out of the SSH session to not leave stale processes in the VM?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北城半夏 2024-09-03 11:41:03

'出口()。' SSH 客户端中的 关闭连接而不停止 VM。

我在任何地方都找不到这个记录,但它似乎几乎达到了我想要的效果。

'exit()' 不是像终止客户端那样为每个终止的连接留下 4 个过时的进程。留下 2 个陈旧的进程。

现在这可能属于“ssh”模块的范围,而不再属于“shell”模块的范围。

'exit().' in the SSH client shuts down the connection without stopping the VM.

I could not find this documented anywhere, but it seems to do almost what I want.

Instead of leaving 4 stale processes per terminated connection like killing the client, 'exit().' leaves 2 stale processes.

This may now be in the realm of the 'ssh' module and no longer in the realm of the 'shell' module.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文