Systemd
telinit 是否作為守護程序執行?
在 sysvinit 中,
telinit
是指向init
.
init
作為守護程序執行。是否telinit
作為守護程序執行?我的 Lubuntu 上沒有安裝 sysvinit。作為比較, 它的
systemctl
作用與systemd
astelinit
to相似init
,並且systemctl
有一個控制終端,因此不作為守護程序systemd
執行,而作為守護程序執行。謝謝。
一個文件是否是另一個文件的符號連結與其執行方式無關。
telinit
,如systemctl
,作為“正常”程序執行。
基於這個問題和在 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
不是守護程序。