2012-08-22 47 views
7

因此,我正在嘗試編寫一些滿足LSB的init.d腳本,以便它們在啓動和關閉時都能正常運行。不幸的是,我遇到了LSB/update-rc.d問題以滿足依賴關係。update-rc.d和init.d依賴關係

# 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 

然而,當我運行update-rc.d的默認值,它只是產生有關的默認值,以存儲爲已經依賴關係完全相同的開始時間,這可怕的事情打破。我是否缺少update-rc.d或LSB以獲取此配置?

如果它是相關的,這是Ubuntu的12.04

回答

12

使你的腳本以後在啓動順序運行,只是在下面的命令添加一個序列號,如。那麼大多數依賴關係都會得到滿足。

有一次,我不得不使用一個依賴於其他啓動腳本的啓動腳本。這帶來了很多麻煩。最後,我用這個命令來解決問題:

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

的意味着my_script在啓動得到序列號98,它看起來像它的範圍從1到99,而其他大多數的啓動腳本中有更小的數字這可以確保我的腳本準備好了所有的依賴關係。

BTW,刪除舊腳本,這可以用於:

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

希望這有助於。