скрипт init.d не выполняется

У меня есть сценарий /etc/init.d, который запускает мой веб-сервер. Я сделал его исполняемым и добавил его (update-rc.d webserver defaults). Когда я запускаю скрипт из командной строки, он отлично работает (./webserver).

Но после перезагрузки моей системы мой веб-сервер не работает.

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

cd ~/projects/webserver
./.build/debug/webserver &
exit 0

Является ли каталог пользователя проблемой (я зарегистрирован как пользователь root)?

1
задан 25 August 2016 в 17:47

1 ответ

В вашем скрипте есть проблема. Когда вы пишете скрипт, лучше используйте путь aboslute вместо тильды (~) . Это может быть преступником, который сделал сценарий непригодным для использования. Если вы хотите изменить каталог, укажите полный путь, как / home / scripts / projects / вместо ~ / projects . Это делает намного больше различий.

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

1) Основной способ, которым вы привязали и не преуспели.

sudo su
chmod a+x /etc/init.d/webserver
update-rc.d webserver defaults

2) Добавить задание cron при перезагрузках.

sudo su
crontab -e
@reboot /home/path/to/script.sh

3) Добавьте свои команды в rc .local перед выходом последней строки 0.

sudo su
nano /etc/rc.local
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
cd /absolute/path/projects/webserver
./.build/debug/webserver &
3
ответ дан 23 May 2018 в 06:48
  • 1
    Написание имени этого персонажа - тильда, а не тильда. – Monty Harder 25 August 2016 в 23:43
  • 2
    Это печатная ошибка. Спасибо, что упомянул. Я его отредактировал. – SAGAR BHOOSHAN 25 August 2016 в 23:48

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

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