2010-10-26 95 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