5

Итак, у меня есть учетная запись sudoer на удаленном хосте, в которой я создаю процесс с тысячами потоков и сокетов. Дело в том, что если я создаю слишком много потоков / сокетов (не знаю, какой именно, это может быть даже какой-то другой предел), я блокируюсь из хоста: мое соединение ssh потеряно, и, если я пытаюсь снова войти в ssh, Я получаю сообщение «Ошибка записи: сообщение об ошибке Write failed: Broken pipe .

Как я могу вернуться в систему, кроме как попросить другого пользователя sudo killall -9 -u myusername на этом компьютере? Хост обычно доступен для других пользователей.

1 ответ1

1

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

Чтобы предотвратить это в будущем, вам необходимо выяснить, какой предел фактически достигнут, а затем предел вашего процесса немного ниже максимального (с помощью ulimit). Вы также можете рассмотреть возможность использования cgroups (контрольных групп Linux) для изоляции вашего процесса таким образом, чтобы он не занимал все ресурсы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .