У меня есть приложение Erlang, работающее как демон, настроенный как сервер SSH. Я могу соединиться с ним с клиентом SSH, и я получаю стандартный Erlang REPL.
Если я 'q ()'. Я закрыл Erlang VM, не соединение. Если я закрываю соединение (' ~ '. для OpenSSH закройте окно в PuTTY), некоторые процессы остаются под sshd_sup/ssh_system_xx_sup деревом. Они, кажется, устаревшие процессы оболочки.
Я не вижу экспортируемой функции в модуле оболочки, который позволил бы мне закрыть оболочку (и поэтому соединение SSH), не влияя на весь VM.
Как я должен выходить из сессии SSH для не отъезда устаревших процессов в VM?
'exit().' в SSH-клиенте отключает соединение без остановки ВМ.
Я нигде не смог найти документального подтверждения этому, но, похоже, это делает почти то, что я хочу.
Вместо того, чтобы оставлять 4 неактивных процесса на каждое прерванное соединение, как при убийстве клиента, 'exit().' оставляет 2 неактивных процесса.
Возможно, теперь это относится к области модуля 'ssh' и больше не относится к области модуля 'shell'.