Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 运行级别更改时如何运行服务_Linux_Service_Proftpd_Runlevel - Fatal编程技术网

Linux 运行级别更改时如何运行服务

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中,但我认为其他人也采用这种方法),通过在脚本

我想在运行级别从2更改为5时自动启动proftpd服务。当它变回2时,应再次停止


有什么想法吗

如果使用
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是否有允许您基于运行级别提供服务的参数。如果有,你是幸运的。如果没有,你将不得不改变你的方法