我有一个bash脚本,我想在apache启动或重启之前执行。
我希望在启动过程中启动apache时以及手动运行“/etc/init.d/apache2 restart / start”时执行bash脚本。
有一个init.d脚本“/etc/init.d/apache2”,但我宁愿不触摸该文件。
Google不是很有帮助:)
答案 0 :(得分:0)
由于编写/etc/init.d/apache2
的方式,您不能通过将apache2ctl
中的脚本置于PATH
之前并且修改或重命名/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
符号链接。