Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Log out of an SSH session into Erlang VM without stopping the VM or leaving stale processes

Tags:

erlang

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?

like image 350
Garret Smith Avatar asked Mar 29 '10 16:03

Garret Smith


1 Answers

'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.

like image 146
Garret Smith Avatar answered Sep 22 '22 10:09

Garret Smith