J'ai programmé un simple Python script pour qu'il s'exécute toutes les minutes sous l'utilisateur foo
SHELL=/bin/bash
BASH_ENV=/home/foo/.bash_profile
* * * * * python /home/foo/slack-bot/main.py 2>&1 /home/foo/slack-bot.log
Après quelques minutes, j'ai obtenu ces erreurs et j'ai été rapidement expulsé de mon serveur.
-bash: fork: Cannot allocate memory
-bash: wait_for: No record of process 32012
-bash: fork: Cannot allocate memory
-bash: wait_for: No record of process 32012
....
Uh oh. J'ai donc essayé de me connecter en tant que root
et le sudo-ing comme foo
sudo -iu foo
sudo: unable to execute /bin/bash: Cannot allocate memory
Super.
J'ai ensuite supprimé la ligne incriminée du fichier foo
dans le fichier crontab de l'utilisateur, et a également tué tous les processus avec slack
au nom
kill $(ps aux | grep 'slack' | awk '{print $2}')
J'obtiens maintenant une erreur différente, mais je ne peux toujours pas sudo cet utilisateur :
sudo -iu foo
-bash: xmalloc: .././copy_cmd.c:86: cannot allocate 32 bytes (450560 bytes allocated)
Qu'est-ce qui se passe ici ? Je suis sûr qu'il y a une erreur dans mon programme cron que je vais examiner, mais quel type de comportement provoque les erreurs de fourchette de mémoire ? Quelle est la meilleure façon de récupérer, à part un hard-reset ?
Merci !