2010-03-29 10 views
6

Ho un'applicazione Erlang in esecuzione come daemon, configurata come server SSH. Posso collegarmi ad esso con un client SSH e ottengo lo standard Erlang REPL.Disconnettersi da una sessione SSH in Erlang VM senza arrestare la VM o lasciare processi in stallo

If I 'q().' Ho spento il VM Erlang, non la connessione. Se chiudo la connessione ('~.' Per OpenSSH, chiudi la finestra in PuTTY) alcuni processi rimangono sotto la struttura sshd_sup/ssh_system_xx_sup. Questi sembrano processi di shell stantii.

Non vedo alcuna funzione esportata nel modulo della shell che consenta di arrestare la shell (e quindi la connessione SSH) senza influire sull'intera VM.

Come dovrei disconnettermi dalla sessione SSH per non lasciare processi inutilizzati nella VM?

risposta

4

'exit().' nel client SSH arresta la connessione senza arrestare la VM.

Non riesco a trovare questo documento ovunque, ma sembra fare quasi quello che voglio.

Invece di lasciare 4 processi obsoleti per connessione terminata come uccidere il client, 'exit().' lascia 2 processi obsoleti.

Questo potrebbe ora essere nel regno del modulo 'ssh' e non più nel regno del modulo 'shell'.

+0

Non lascia alcun processo inattivo per me (R15B01) con entrambi i comportamenti '~ .' e' exit() ': ' 4> erlang: system_info (process_count). 43' '% connect by shh 5> erlang: system_info (conto_contenuto). 53' '% termina sessione di" ~. " o "exit()" 6> erlang: system_info (process_count). 43' – seriyPS

Problemi correlati