$ ls
bash: no more processes
Euh oh. On dirait que quelqu'un a fabriqué une bombe à fourche. Là où j'avais l'habitude de travailler, cela signifiait à peu près que le serveur partagé devait être redémarré, car même les administrateurs système avec root ne pouvaient souvent pas résoudre le problème. Souvent, ils ne pouvaient même pas recevoir d'invite.
J'ai entendu quelques astuces (notamment pour envoyer des signaux STOP plutôt que des signaux KILL, car ces derniers permettraient aux threads restants de remplacer immédiatement ceux tués), mais je n'ai jamais vu de guide complet intitulé So, You Have Yourself une bombe à fourche?
Faisons-en un.
0
et-1
, selon opengroup.org/onlinepubs/009695399/functions/kill.html opengroup.org/onlinepubs/000095399/utilities/kill.htmlJe ne sais pas comment vous pourriez même envoyer un signal STOP, car le frai
kill
nécessiterait un descripteur de processus disponible. De plus, d'après mon expérience, les systèmes deviennent surchargés et inutilisables bien avant de manquer de processus.Avez-vous envisagé de simplement appliquer les limites de processus par utilisateur avec
ulimit
? Cela empêcherait vos utilisateurs de lancer des bombes à fourche (accidentellement ou non).la source
Certains systèmes BSD ont la possibilité de réserver les 5 derniers processus pour root. Peut-être que votre système a cette capacité.
la source