$ ls
bash: no more processes
Ah, oh. Parece que alguém fez uma bomba de garfo. Onde eu costumava trabalhar, isso significava que o servidor compartilhado precisaria ser ligado e ligado, pois nem mesmo os administradores de sistema com root conseguiam resolver o problema. Muitas vezes, eles nem conseguiam receber um aviso.
Ouvi alguns truques (principalmente para enviar sinais STOP em vez de KILL, já que o último permitiria que os threads restantes substituíssem imediatamente os mortos), mas nunca vi um guia completo intitulado So, You Have Yourself uma bomba de garfo?
Vamos fazer um.
0
e-1
, de acordo com opengroup.org/onlinepubs/009695399/functions/kill.html opengroup.org/onlinepubs/000095399/utilities/kill.htmlNão tenho certeza de como você pode enviar um sinal de STOP, pois a geração
kill
exigiria um identificador de processo disponível. Além disso, na minha experiência, os sistemas ficam sobrecarregados e inutilizáveis muito antes de ficar sem processos.Você já pensou em impor limites de processo por usuário
ulimit
? Isso impediria que seus usuários lançassem bombas de forquilha (acidentalmente ou não).fonte
Alguns sistemas BSD têm a capacidade de reservar os últimos 5 ou mais processos para raiz. Talvez o seu sistema tenha essa capacidade.
fonte