rc.local não executará o script

3

Este é o 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.

cd /root/server/srv/
./start_srv &

exit 0

Quando executo

    cd /root/server/srv/
    ./start_srv &

via terminal eu mesmo, ele começa normalmente e tudo funciona mas quando eu tento e faço através do rc.local ele não começa.

Eu sei que rc.local não precisa de sudo, etc. Eu tentei executar rc.local me através do terminal e recebo o erro: "Não é possível CD para ..."

O que estou fazendo de errado?

ls -ld / root: drwx------ 4 root root 4096 ,

ls -ld / raiz / servidor: drwxr-xr-x 3 root root 4096 ,

ls -ld / raiz / servidor / srv / start_srv: -rwxr-x--x 1 500 500 468420

ls -ld / raiz / servidor / srv: drwxrwxrwx 2 500 500 4096

    
por user1880779 31.07.2014 / 04:24

1 resposta

3

Para verificar seu script /etc/rc.local , você deve usar este comando:

  sudo service rc.local start

Quando o sistema init inicia rc.local scripts ele é executado como root , mas se você quiser verificar seu script, precisará se tornar root via sudo comando.

É por isso que você tem erros como Can't CD to /root/server/srv/ .

Se o seu script não funcionar durante o processo de inicialização, considere que o ambiente é restrito, portanto, você deve definir as variáveis ausentes conforme necessário no script.

Aqui é um exemplo.

O erro: /bin/sh: 0: Illegal option - é devido ao formato de arquivo DOS .

Para corrigir isso, você deve instalar o utilitário dos2unix e converter o arquivo rc.local :

  sudo dos2unix /etc/rc.local
    
por Lety 31.07.2014 / 19:13