Выйдите из сеанса SSH в виртуальную машину Erlang, не останавливая виртуальную машину и не выходя из устаревших процессов. - PullRequest
6 голосов
/ 29 марта 2010

У меня есть приложение Erlang, работающее как демон, настроенное как сервер SSH. Я могу подключиться к нему с помощью SSH-клиента и получить стандартный Erlang REPL.

Если я 'q ().' Я закрыл Erlang VM, а не соединение. Если я закрываю соединение ('~.' Для OpenSSH, закрываем окно в PuTTY), некоторые процессы остаются в дереве sshd_sup / ssh_system_xx_sup. Похоже, это устаревшие процессы оболочки.

Я не вижу никакой экспортированной функции в модуле оболочки, которая позволила бы мне закрыть оболочку (и, следовательно, соединение SSH), не затрагивая всю ВМ.

Как мне выйти из сеанса SSH, чтобы не оставлять устаревшие процессы в ВМ?

1 Ответ

4 голосов
/ 29 марта 2010

Выход (). в клиенте SSH отключает соединение, не останавливая виртуальную машину.

Я не мог найти это нигде, но, похоже, он делает почти то, что я хочу.

Вместо того, чтобы оставлять 4 устаревших процесса на разорванное соединение, например, убивать клиента, 'exit ().' оставляет 2 несвежих отростка.

Теперь это может быть в области модуля 'ssh' и больше не в области модуля 'оболочки'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...