当运行级别从2变为5时,我想自动启动proftpd服务。当它变回2时,它应该再次停止。
有什么想法吗?
答案 0 :(得分:0)
如果您使用sysvinit
,则此过程很简单。只需在K??yourServiceName
中添加/etc/rc2.d
脚本,在S??yourServiceName
中添加/etc/rc5.d
。它们将使用$RUNLEVEL
环境变量中的运行级别以及stop
和start
(分别)参数进行调用。 ??
表示两个数字,表示要使用的执行顺序(优先级?)。
这已被新脚本(主要是在debian中,但我认为其他人也遵循这种方法)所取代,在脚本中有几个字段,表明脚本之间的依赖关系,并且执行是针对不同的脚本进行的。 t依赖于彼此,但是依赖于它们之间依赖的脚本。您可以在脚本本身中阅读有关此方法的信息。这些脚本通常安装在/etc/init.d
中,符号链接从那里到正确的目录,由控制它的实用程序使用正确的两位数。
最后,如果你使用systemd
(它完全取代了sysv init进程),还有另一种处理它的方法。您必须查找systemd(8)
广告的文档,我不知道它。我只知道它是一家dbus服务提供商,并通过这项新技术与它进行交流。
这两个第一种方法在某种程度上可以互操作,就好像你修复了执行的优先级并且没有填充依赖关系一样,系统v init进程会尊重它。
此方法假定您将proftpd
作为独立服务运行(不依赖于xinetd(8)或inetd(8)),并且它具有在运行级别更改时启动和停止它的脚本。
如果您需要根据xinetd(8)
运行它,我现在不知道xinetd是否有参数允许您根据运行级别进行服务。如果有,你很幸运。如果它没有,你将不得不改变方法。