rc.local - nem todos os comandos são executados

5

Eu tenho as seguintes linhas no meu 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

mas nem /tmp/cooks nem /tmp/cook nem /tmp/xhprof dir não foi criado (na inicialização do sistema). Estou usando Debian GNU/Linux 6.0 squeeze (VPS)

    
por genesis 12.07.2011 / 20:32

1 resposta

9

O script começa com #!/bin/sh -e . A opção -e significa que o shell sairá se algum comando retornar um status diferente de zero. É provável que um dos comandos esteja falhando. Talvez /resize ou /resize2 esteja retornando diferente de zero, ou talvez /etc/rc é ou iptables-restore . Altere a linha shebang para #!/bin/sh -ex e execute o script; você verá um rastreamento dos comandos que ele executa.

Se você achar que um dos comandos está retornando diferente de zero quando deveria ter sido bem-sucedido, corrija-o. Se você achar que um dos comandos está retornando não-zero legitimamente, adicione || true após ele. Se você achar que não se importa com o status de retorno de qualquer um dos comandos, remova o -e .

    
por 12.07.2011 / 22:42