Systemd

telinit 是否作為守護程序執行?

  • December 21, 2018

在 sysvinit 中,telinit是指向init.

init作為守護程序執行。是否telinit作為守護程序執行?

我的 Lubuntu 上沒有安裝 sysvinit。作為比較, 它的systemctl作用與systemdas telinitto相似init,並且systemctl有一個控制終端,因此不作為守護程序systemd執行,而作為守護程序執行。

謝謝。

一個文件是否是另一個文件的符號連結與其執行方式無關。telinit,如systemctl,作為“正常”程序執行。

基於這個問題和在 sysvinit 中,telinitinit 在同一個程序中執行嗎?我認為您對程序如何與符號連結進行互動感到困惑。

當一個程序有多個名稱(符號連結、硬連結)時,它可以根據呼叫方式執行不同的操作。

例如,這是一個簡單的 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不是守護程序。

引用自:https://unix.stackexchange.com/questions/489896