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?
'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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With