initプロセスは、Linuxシステム上のすべてのプロセスの祖先として存在します。このプロセスにはどのようなIPCエントリポイントがありますか?何らかの理由で他のプロセスがinitとしてIPCingされていますか?
答え1
プロセスと手順を混同しないでください。 1つのプロセス#1がありますが、他の多くのプログラムのいずれかを実行できます。
systemd
systemdパッケージのプログラムを実行している場合:- 内部システムAPIがありますD-Bus 経由のアクセスは信頼性が保証されず、systemd パッケージ以外の目的に使用するのには適していません。
- 数多くの信号に反応します。、
SIGWINCH
〜に至るまで。SIGPWR
SIGRTMIN + 4
- 実行中の場合
system-manager
プログラムスナックバッグ:systemd
該当する場合、同じ意味を持つ識別された信号のかなりのサブセットに応答します。
init
起動からプログラムを実行する場合:- 内部upstart APIがあります。、D-Bus経由でアクセスできます。
- FIFOからコマンドメッセージを読みます
initctl
。 - それは小さな信号セットに反応します。
- Joachim Nilssonを実行している場合
finit
:- FIFOからコマンドメッセージを読みます
initctl
。 - それは反応する小さな信号セット。
- FIFOからコマンドメッセージを読みます
- System 5を実行している場合は、次のように
init
します。- FIFOからコマンドメッセージを読みます
initctl
。 - 非常に小さな信号セットに反応します。
- FIFOからコマンドメッセージを読みます
いくつかの注意:
- シグナルAPIは、シグナルをプロセス#1に送信することによって実行されます。これには
SIGWINCH
、、、、SIGINT
などの項目を送信するオペレーティングシステムカーネルと、広くSIGPWR
使用されているさまざまなシステムユーティリティが含まれます。systemd
どちらも、システムの電源を切るなどのシステム状態の変更を指示する信号を使用してこの機能を拡張します。system-manager
- すべてのプログラムがシステム固有の信号全体をサポートするわけではありません。
SIGPWR
例えば、スタートアップ企業では回答について言及していない。 finit
SIGSTOP
とを含むさまざまな非体系的強制拡張信号セットを識別しますSIGCONT
。
initctl
systemd パッケージは、プロセス #1 で実行されるプログラムで FIFO API を実装していませんが、以下を提供します。互換性スペーサー存在するその他プロセスは、メカニズムを基本システムメカニズムに変換する別のプログラムを実行します。 (noshツールセットには独自initctl-read
互換性シムは、noshツールセットシステム管理のための基本的なメカニズムに同様に変換されます。 )initctl
実際、init
他のシステム(もしそうなら)は、限られた下位互換性メカニズムで実行レベルの概念を実装しているため、System V以外の基本システムではありません。- そのプログラムの開始マニュアルページに
init
示すように、initctl
メカニズムは十分に文書化されていません。さらに、System Vの人々はSystem Vパッケージにあるものだけを使用しなければならないとinit
人々に言っています。init
さらに、Debian System V管理者は/dev
これを/run
。
はい。プログラムはプロセス#1を使用してIPCを実行します。そうする理由はさまざまです。
- この
systemd
プログラムはSystem Manager、Service Manager、Control Group Managerの組み合わせなので、プログラムはIPCを使用して#1をさまざまな目的で処理します。ヌーボーリッチの場合も同様ですinit
。 - 前菜料理の代わり
system-manager
に提供するservice-manager
管理は独自の(daemontools互換)APIを使用して他のプログラム(プロセス内の他のプログラム()によって実行されます。したがって、IPCでプロセス#1を使用する唯一の理由は次のとおりです。システム状態(たとえば)マシンの再起動などの管理。
すべてではありませんが、多くの目的のために、プログラムはプロセス#system-manager
1とは異なるAPIを使用し、既存のシステムユーティリティを使用してシステムのシャットダウンや再起動などのタスクを実行することをお勧めします。systemd