3 votes

Exécuter le script python à l'intérieur de /etc/rc.local ne fonctionne pas

J'ai modifié /etc/rc.local sur mon Amazon AWS AMI

#!/bin/sh
touch /var/lock/subsys/local
# configurer le nom d'hôte correctement
/usr/bin/python /root/automation/initSystem.py

donc la dernière ligne appelle un script Python qui effectue la configuration (variables d'environnement, nom d'hôte, paramètres de réseau, etc.) puis exécute /etc/init.d/network restart

si j'exécute rc.local manuellement /etc/rc.local tout se passe bien

lorsque le système démarre automatiquement, cela ne fonctionne pas. Donc la commande touch (2ème ligne - fonctionne), mais le script python n'est jamais exécuté, du moins les résultats de son exécution (configuration d'un nom d'hôte et redémarrage de l'interface réseau ne semblent pas fonctionner du tout)

Des idées ?

2voto

MikeyB Points 38317

Nous ne pouvons pas déboguer un script mystérieux. Est-ce que l'exécution du script python fonctionne avec un environnement vide? Essayez:

env -i /usr/bin/python /root/automation/initSystem.py

Modifiez votre script pour capturer la sortie de votre commande dans le script:

/usr/bin/python /root/automation/initSystem.py > /root/init.stdout 2> /root/init.stderr

et il contiendra probablement des indices sur la raison de l'échec.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X