telinit 是否作为守护进程运行?

telinit 是否作为守护进程运行?

在 sysvinit 中,telinit是一个符号链接init

init作为守护进程运行。是否telinit作为守护进程运行?

我的 Lubuntu 上没有安装 sysvinit。作为比较, 与as tosystemctl扮演类似的角色,并且有一个控制终端,因此不作为守护进程运行,而作为守护进程运行。systemdtelinitinitsystemctlsystemd

谢谢。

答案1

一个文件是否是另一个文件的符号链接与其运行方式无关。telinit,就像 一样systemctl,作为“正常”进程运行。

答案2

基于这个问题和在 sysvinit 中,`telinit` 和 `init` 是否在同一进程中运行?我认为您对程序如何与符号链接交互感到困惑。

当一个程序有多个名称(符号链接、硬链接)时,它可以根据调用方式执行不同的操作。

例如,这是一个简单的 shell 脚本

$ 猫 x

#!/bin/bash

pname=${0##*/}

case $pname in
   tina) echo "Tina Tuner doesn't need another hero" ;;
   fred) echo "The current date is: $(date)" ;;
  harry) sleep 3 ;;
      *) echo Call me tina or fred or harry
esac

它有符号链接:

$ ls -l x tina fred harry
lrwxrwxrwx 1 sweh sweh   1 Dec 19 09:47 fred -> x*
lrwxrwxrwx 1 sweh sweh   1 Dec 19 09:48 harry -> x*
lrwxrwxrwx 1 sweh sweh   1 Dec 19 09:48 tina -> x*
-rwxr-xr-x 1 sweh sweh 217 Dec 19 09:48 x*

所以现在我可以得到不同的结果,具体取决于我如何称呼它:

$ ./tina
Tina Tuner doesn't need another hero
$ ./fred
The current date is: Wed Dec 19 09:50:00 EST 2018
$ ./harry
$ ./x
Call me tina or fred or harry
$ ln -s x something
$ ./something
Call me tina or fred or harry

现在sysv-init程序做了类似的事情。如果telinit这样启动,它只是向主程序发出信号init。如果启动init(如果 PID 为 1,也可能如此,但这会变得更加混乱),那么它将作为主系统 init 进程启动。

所以不行;telinit不是一个守护进程。

答案3

init 作为守护进程运行。 telinit 是否作为守护进程运行?

不,当作为 telinit 调用时,init 二进制文件具有不同的行为。

相关内容