Назад | Перейти на главную страницу

Скрипт при запуске без update-rc.d

У меня минимальная установка debian, и я просто хочу запустить собственный сценарий при запуске.

  1. У меня есть сценарий в /etc/init.d/myscript,
  2. Я поставил chmod 700и создайте символические ссылки на S20myscript в:

    /etc/rc2.d
    /etc/rc3.d
    /etc/rc4.d
    /etc/rc5.d
    

Но тогда скрипт вообще НЕ запускается при запуске.

Когда я использую этот скрипт с update-rc.d (или insserv...), оно работает.

Я не понимаю, меня заставляют использовать эту команду?

(и нет, я не хочу использовать /etc/rc.local).

Попробуйте удалить все символические ссылки в rc*.d каталоги.

Затем попробуйте запустить:

update-rc.d -n myscript enable

куда -n средства not-really

Здесь будет указано, что должен делать insserv: создание символической ссылки и генерируя некоторые .depend.* файлы

Взгляните на init.d/.depend.boot, init.d/.depend.start и init.d/.depend.stop: может быть, вам нужно обновить и эти файлы? Если вы решили поменять их вручную (а что не так с update-rc.d?) будьте особенно осторожны, чтобы дальнейшие вызовы update-rc.d не собираемся возиться с вашими правками ...

Видеть man startpar и man insserv чтобы получить некоторые знания об использовании того, как эти .depend.* файлы.

И мой последний совет: используйте update-rc.d :)

Что плохого в добавлении его в /etc/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.