rc.local – toutes les commands ne sont pas exécutées

J'ai les lignes suivantes dans mon rc.local

#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. if [ -f /resize ] then if [ -f /resize2 ] then sh /resize2 else sh /resize fi fi /etc/rc --foreground /sbin/iptables-restore /etc/iptables mkdir /tmp/cooks mkdir /tmp/cook chmod 777 /tmp/cook chmod 777 /tmp/cooks mkdir /tmp/xhprof chmod 777 /tmp/xhprof exit 0 

mais ni /tmp/cooks ni /tmp/cook ni /tmp/xhprof dir n'a pas été créé (au démarrage du système). J'utilise Debian GNU/Linux 6.0 squeeze (VPS)

Le script commence par #!/bin/sh -e . L'option -e signifie que le shell quittera si une command renvoie un statut différent de zéro. Il est probable que l'une des commands échoue. Peut /resize être /resize ou /resize2 renvoie non zéro, ou peut /etc/rc être /etc/rc est, ou iptables-restore . Changez la ligne de shebang en #!/bin/sh -ex et exécutez le script; vous verrez une trace des commands qu'il exécute.

Si vous trouvez que l'une des commands renvoie une valeur non nulle alors qu'elle aurait dû réussir, corrigez-la. Si vous trouvez que l'une des commands renvoie un code non nul légitimement, ajoutez || true || true après. Si vous trouvez que vous ne vous souciez pas du statut de return de l'une des commands, supprimez le -e .