2012-08-22 19 views
7

Próbuję więc napisać kilka skryptów init.d spełniających LSB, aby działały poprawnie podczas uruchamiania i zamykania. Niestety, mam problemy z LSB/update-rc.d w celu zaspokojenia zależności.update-rc.d i init.d dependencies

# Required-Start: $network $local_fs hadoop-namenode hadoop-datanode zookeeper-server 
# Required-Stop: $network $local_fs hadoop-namenode hadoop-datanode zookeeper-server 
# Default-Start: 2 3 4 5 
# Default-Stop: 0 1 6 

jednak, gdy biegnę domyślne update-rc.d, a jedynie generuje domyślne związane z tym samym momencie startu jak już zależne, który łamie rzeczy potwornie. Czy brakuje mi czegoś z update-rc.d lub LSB, aby to skonfigurować?

W przypadku jest to istotne, to Ubuntu 12.04

Odpowiedz

12

Aby uruchomić skrypt później w sekwencji startowej, wystarczy dodać numer sekwencyjny, jak w poniższej komendy. Wtedy większość zależności zostanie zaspokojona.

Kiedyś musiałem użyć skryptu rozruchowego, który zależał od innych skryptów rozruchowych. To przyniosło wiele problemów. W końcu użyłem tego polecenia, aby rozwiązać ten problem:

cd /etc/init.d 
sudo update-rc.d my_script defaults 98 

oznacza my_script dostaje numer porządkowy 98 w bagażniku, wygląda na to, że to w zakresie od 1 do 99, a większość innych skryptów startowych mają mniejsze numery , dzięki temu mój skrypt ma gotowe wszystkie zależności.

BTW, aby usunąć stary scenariusz ten może być stosowany:

sudo update-rc.d -f my_old_script remove 
# -f means 'force' 

Nadzieja to pomaga.