Для розваги запустіть наступну програму (перекладену на обрану мову вашої реалізації) у фоновому режимі в системі з обліковим записом користувача та обмеженнями.
while(true) fork();
Тепер, коли кожен слот у таблиці процесів, яким ви можете дозволити користуватися, заповнений копіями цієї запущеної програми, як ви збираєтесь її вбити? Запуск вбивства (1) вимагає іншого слота процесу, якого ви не можете мати. Звичайно, було б зручно, щоб оболонка замінила себе командою kill ...
exec /bin/kill -9 -1
(Припустимо, що у вашій системі є kill (1) at / bin / kill. "Exec` which kill` -9 -1 "потенційно безпечніший.) Це надсилає SIGKILL до кожного процесу, який ви можете.
(Примітка. Не виходите зі своєї запускової оболонки, якщо обмеження процесу завжди не дозволяють новому входу в слот процесу для своєї оболонки. Це може бути дещо складніше очистити, якщо це зробити. Я, звичайно, цього не робив у початку 90-х. Ні.)