rc.local не будет выполнять скрипт

Это мой 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

Когда я сам выполняю

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

через терминал, он запускается нормально и все работает, но когда я пытаюсь сделать это через rc. местный это не начнется.

Я знаю, что rc.local не нужен sudo и т. Д. Я попытался выполнить rc.local самостоятельно через терминал, и я получаю сообщение об ошибке: «Не могу CD ...»

Что я делаю неправильно?

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

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

ls -ld / root / server / srv / start_srv: -rwxr-x--x 1 500 500 468420

ls -ld / root / server / srv: drwxrwxrwx 2 500 500 4096

4
задан 31 July 2014 в 15:36

1 ответ

Для проверки Вашего /etc/rc.local сценарий необходимо использовать эту команду:

  sudo service rc.local start

Когда система init запускается rc.local скрипты, которые это запускает как корень, но если Вы хотите проверить свой сценарий, необходимо стать корнем через sudo команда.

Именно поэтому Вы получили ошибки как Can't CD to /root/server/srv/.

Если Ваш сценарий не работает во время процесса запуска, полагает, что среда ограничивается, таким образом, необходимо определить отсутствующие переменные как потребности сценария.

Вот пример.

Ошибка: /bin/sh: 0: Illegal option - происходит из-за DOS формат файла.

Для фиксации его, необходимо установить dos2unix утилиту и преобразовать rc.local файл:

  sudo dos2unix /etc/rc.local
4
ответ дан 31 July 2014 в 15:36

Другие вопросы по тегам:

Похожие вопросы: