シスビネットではtelinit
シンボリックリンクですinit
。
init
デーモンプロセスとして実行されます。telinit
デーモンとして実行されますか?
私のLubuntuにsysvinitがインストールされていません。比較すると、systemctl
同様の役割を果たし、制御端末を持っているので、デーモンとして実行されるのではなくデーモンとして実行されます。systemd
telinit
init
systemctl
systemd
ありがとうございます。
答え1
ファイルが他のファイルへのシンボリックリンクであるかどうかは、どのように機能するかに関係ありません。telinit
、同様にsystemctl
「正常な」プロセスとして実行されます。
答え2
この質問に基づいて、sysvinitでは、'telinit'と'init'は同じプロセスで実行されますか?あなたのプログラムがシンボリックリンクとどのように対話するかについて混乱しているようです。
プログラムに複数の名前(シンボリックリンク、ハードリンク)がある場合は、呼び出し方法に応じて他の操作を実行できます。
たとえば、これは単純なシェルスクリプトです。
$猫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の場合は可能ですが、より混乱します)、デフォルトのシステム初期化プロセスから始まります。
telinit
そうではありません。いいえデーモンプロセス。
答え3
initはデーモンプロセスとして実行されます。 Telinitはデーモンとして実行されますか?
いいえ、initバイナリはtelinitとして呼び出されると動作が異なります。