Linux 运行级别更改时如何运行服务
我想在运行级别从2更改为5时自动启动proftpd服务。当它变回2时,应再次停止Linux 运行级别更改时如何运行服务,linux,service,proftpd,runlevel,Linux,Service,Proftpd,Runlevel,我想在运行级别从2更改为5时自动启动proftpd服务。当它变回2时,应再次停止 有什么想法吗 如果使用sysvinit,过程很简单。只要在/etc/rc2.d中有一个K??yourServiceName脚本,在/etc/rc5.d中有一个S??yourServiceName。它们将使用$runlevel环境变量中的runlevel以及stop和start参数调用。??表示两位数字,表示要使用的执行顺序(优先级?) 在新的脚本中(主要是在debian中,但我认为其他人也采用这种方法),通过在脚本
有什么想法吗 如果使用
sysvinit
,过程很简单。只要在/etc/rc2.d
中有一个K??yourServiceName
脚本,在/etc/rc5.d
中有一个S??yourServiceName
。它们将使用$runlevel
环境变量中的runlevel以及stop
和start
参数调用。??
表示两位数字,表示要使用的执行顺序(优先级?)
在新的脚本中(主要是在debian中,但我认为其他人也采用这种方法),通过在脚本本身中有几个字段来代替这一点,这些字段指示脚本之间的依赖关系,对于相互不依赖的脚本,执行是并行完成的,而对于相互依赖的脚本,则是串行完成的。您可以在脚本本身中了解这种方法。脚本通常安装在/etc/init.d
中,由控制脚本的实用程序从那里建立符号链接,指向具有正确两位数位置的正确目录
最后,如果您使用systemd
(它完全取代了sysv init进程),那么还有另一种方法可以处理它。您必须查找systemd(8)
ad的文档,我不知道。我只知道它是一家dbus服务提供商,通过这项新技术与它进行通信
前两个方法在某种程度上是可互操作的,就好像您确定了执行的优先级而不填充依赖项一样,SystemV init进程将尊重它
编辑
这种方法假设您作为独立服务运行proftpd
(不依赖于xinetd(8)或inetd(8)),并且它有脚本在运行级别更改时启动和停止它
如果您需要根据xinetd(8)
运行它,我现在不知道xinetd是否有允许您基于运行级别提供服务的参数。如果有,你是幸运的。如果没有,你将不得不改变你的方法