在https://manpages.debian.org/stretch/sysvinit-core/init.8.en.html
/sbin/telinit 链接到 /sbin/init。它需要一个字符参数并且信号init 来执行适当的操作。
...
Init 监听/run、/run/initctl 中的 fifo, 对于消息。Telinit 使用它与 init 进行通信。
第一句话是否意味着这 telinit
是一个符号链接init
?如果是,那么telinit
和init
在同一进程中运行是否正确(例如可能通过某种文件锁定)?如果是,如何使用 FIFO 或信号telinit
进行通信?init
作为比较,在 Systemd 中,systemd
和systemctl
是不同的程序文件。与sysvinit 中的telinit
to 执行相同的角色吗 ?init
systemctl
systemd
谢谢。
答案1
它是一个符号链接,但程序可以查看它们的调用方式并执行不同的操作。这在 Unix 世界中极为常见。
因此,当您运行telinit
comamnd 时,它会在自己的进程空间中运行,分离从init
过程中。它向进程发送一条消息init
。这可以通过 FIFO 或信号发送,具体取决于编译时选项。