在Ubuntu上,要configuration服务在networking启动后启动,可以在/etc/network/if-up.d/中添加一个脚本
#!/bin/sh /etc/init.d/<your service> restart
或者像这个超级用户Q / A中所build议的那样。
但是我没有看到红帽子上的等价物。 我发现的唯一的东西是在S / K文件中使用数字。 我的意思是,这是红帽子的方式吗?
是的,这是正确的路要走。 你应该使用chkconfig来为你pipe理init脚本。
S? 和K? 数字决定了优先级,因此您应该确保您的服务数量高于“networking”(或NetworkManager)服务的数量。
initscript开头的chkconfig定义决定了它得到的S / K号码。
每个“运行级别”实际上只是一个目录( /etc/rc*.d/ ),其中包含了符合链接( /etc/init.d/ )的符号链接,而这些符号链接则用编号为S和K的条目命名。
S表示开始,K表示杀死。 当init进入一个运行级时,它从S01开始,一直运行到S99,运行每个initscript来启动脚本控制的服务。 当init离开一个运行级时,它从K01开始,一直运行到K99,运行每个脚本停止脚本控制的服务。
man chkconfig给出了chkconfig-style服务定义和Linux Standards Base(LSB)风格的服务定义的例子。
如果一个initscript同时定义了这两种types,则LSB定义应优先于chkconfig定义。
如果您的服务依赖于networking连接,则可以在/etc/rc*.d/S10network之后通过在10之后给出开始数字来确保您的服务启动,或者您可以看到/etc/init.d/networking有LSB定义提供:$ network ,所以你可以在你的initscript中使用LSB定义Required-Start:$ network 。