我想在运行级别从2更改为5时自动启动proftpd服务。当它变回2时,应该再次停止。
有什么想法吗?
最佳答案
如果使用sysvinit
,则过程很简单。只需在K??yourServiceName
中使用/etc/rc2.d
脚本,在S??yourServiceName
中使用/etc/rc5.d
脚本。它们将使用$RUNLEVEL
环境变量中的runlevel和stop
参数(分别)调用。start
表示两个数字,表示要使用的执行顺序(优先级?).
在新的脚本中(主要是在debian中,但我认为其他脚本也遵循这种方法),这已经被替换为在脚本本身中有几个字段,指示脚本与执行之间的依赖关系,对于不相互依赖的脚本,这是并行完成的,而对于相互依赖的脚本,这是串行完成的。您可以在脚本中阅读此方法。脚本通常安装在??
中,并且由控制脚本的实用程序从那里建立到具有适当两位数位置的适当目录的符号链接。
最后,如果您使用/etc/init.d
(它已经完全替换了sysv init进程),则有另一种方法来处理它。你得去找我不知道的那个医生。我只知道它是一个dbus服务提供商,通过这种新技术处理与它的通信。
前两个方法具有一定的互操作性,就好像您确定了执行的优先级而没有填充依赖项一样,system v init进程将尊重它。
编辑
这种方法假定您运行systemd
为独立服务(不依赖于XeNETD(8)或ITED(8)),它具有脚本来启动和停止运行级更改。
如果您需要根据systemd(8)
运行它,我现在不知道XeNETD是否有参数允许您基于运行级别进行服务。如果有的话,你是幸运的。如果没有,你就必须改变你的方法。