$ ls
bash: no more processes
Ооо Похоже, кто-то сделал вилочную бомбу. Там, где я раньше работал, это в значительной степени означало, что общий сервер должен был выключаться и выключаться, поскольку даже системные администраторы с root-правами часто не могли решить проблему. Часто они даже не могли получить подсказку.
Я слышал несколько трюков (в частности, для отправки сигналов STOP, а не KILL, поскольку последние позволили бы оставшимся потокам немедленно заменить убитые), но я никогда не видел подробного руководства под названием « Итак, вы сами» вилочная бомба?
Давайте сделаем один.
0
и-1
, согласно opengroup.org/onlinepubs/009695399/functions/kill.html opengroup.org/onlinepubs/000095399/utilities/kill.htmlНе уверен, как вы могли бы даже отправить сигнал STOP, так как порождение
kill
потребовало бы доступного дескриптора процесса. Кроме того, по моему опыту, системы перегружаются и становятся непригодными для использования задолго до завершения процессов.Рассматривали ли вы просто соблюдение лимитов процессов для каждого пользователя с помощью
ulimit
? Это помешает вашим пользователям запускать вилочные бомбы (случайно или нет).источник
Некоторые системы BSD имеют возможность зарезервировать последние 5 или около того процессов для root. Возможно, ваша система обладает такой способностью.
источник