2010-10-26 102 views
2

我有一個bash腳本,我想在apache啓動或重新啓動之前執行。將bash腳本附加到apache start

我希望我的bash腳本在啓動過程中啓動apache時以及手動運行「/etc/init.d/apache2 restart/start」時執行。

有一個init.d腳本「/etc/init.d/apache2」,但我寧願不碰那個文件。

谷歌是不是非常有幫助:)

+0

老實說,更改「/etc/init.d/apache2」正是我要採取的方法。你爲什麼不想碰那個文件? – 2010-10-26 17:53:34

+1

@Ben Lee:我的推理是Apache更新可能會覆蓋該文件。 – koen 2010-10-26 18:01:41

回答

0

的因爲/etc/init.d/apache2寫,你不能把你的腳本提前apache2ctlPATH並修改或重新命名/usr/sbin/apache2ctl會更容易得到劫持的方式在更新期間撤消。因此,您可以選擇修改/etc/init.d/apache2或魔術。

這可能是因爲魔術的形式是通過適當的前綴在適當的/etc/rc?.d目錄中爲您的腳本創建符號鏈接,這會導致它在Apache之前運行。例如,在我的系統中,名稱可能是S88scriptname。您可以爲每個運行級別單獨創建這些鏈接並手動管理它們,或者在支持它的系統(如Debian和Ubuntu)上,可以在/etc/init.d/skeleton之後爲腳本建模,並適當設置LSB header中的選項(尤其是X-Start-Before關鍵字)使用update-rc.d來管理符號鏈接rc?.d