Она создает как многие процессы, как это возможно. Многие версии Unix настраиваются с ядром переменная maxuproc или вроде того. Это максимум, что процессы, не корневой пользователь может создать. Это, действительно, только в защите, и даже при том, что программа, как это неудобство. Как быстро, как вы убиваете процесс, другой занимает его место.
Чтобы восстановить, как корень, вс для пользователя, который работает в ", а (1) вилка ();". корень будет разрешено перейти в корневой процесс этого пользователя, даже если это шишки число процессов последних maxuproc. Теперь у вас есть оболочка, работающая в качестве пользователя. Оболочка не может вилка (), но она может EXEC (). Итак, введите команду:
EXEC / USR / BIN / убить -9 -1
Киллинговы процесс фактически -1 сигналы все процессы, принадлежащие пользователю. Это документально на убийство (2) страницы, и это требует
POSIX. Если Есть много процессов и системных вызовов preemptable и процессами в реальном времени приоритетными являются работает, это может не сработать. Второй подход:
EXEC / USR / BIN / убить-STOP -1
СТОП сигнал, число которых варьируется от системы к системе, не может быть пойман. Она используется для контроля работы и приостанавливает процесс. А приостановила процесс не может пытаться вилкой (), но она по-прежнему потребляют процесс слот это не новый процесс может занять его место. После того, как все сбойного процессы приостановлены, то вы можете убить их.
Корпуса, часто имеют встроенный в убить команду ... если она может обрабатывать -1 является процессом число, то вы можете использовать это. Но снаряды часто имеют встроенный в том, что убивает штуцер на KILLALL неизменным.