Linux - 初期化を含むIPC

Linux - 初期化を含むIPC

initプロセスは、Linuxシステム上のすべてのプロセスの祖先として存在します。このプロセスにはどのようなIPCエントリポイントがありますか?何らかの理由で他のプロセスがinitとしてIPCingされていますか?

答え1

プロセスと手順を混同しないでください。 1つのプロセス#1がありますが、他の多くのプログラムのいずれかを実行できます。

  • systemdsystemdパッケージのプログラムを実行している場合:
  • 実行中の場合system-managerプログラムスナックバッグ:
    • systemd該当する場合、同じ意味を持つ識別された信号のかなりのサブセットに応答します。
  • init起動からプログラムを実行する場合:
    • 内部upstart APIがあります。、D-Bus経由でアクセスできます。
    • FIFOからコマンドメッセージを読みますinitctl
    • それは小さな信号セットに反応します。
  • Joachim Nilssonを実行している場合finit
  • System 5を実行している場合は、次のようにinitします。
    • FIFOからコマンドメッセージを読みますinitctl
    • 非常に小さな信号セットに反応します。

いくつかの注意:

  • シグナルAPIは、シグナルをプロセス#1に送信することによって実行されます。これにはSIGWINCH、、、、SIGINTなどの項目を送信するオペレーティングシステムカーネルと、広くSIGPWR使用されているさまざまなシステムユーティリティが含まれます。
    • systemdどちらも、システムの電源を切るなどのシステム状態の変更を指示する信号を使用してこの機能を拡張します。system-manager
    • すべてのプログラムがシステム固有の信号全体をサポートするわけではありません。SIGPWR例えば、スタートアップ企業では回答について言及していない。
    • finitSIGSTOPとを含むさまざまな非体系的強制拡張信号セットを識別しますSIGCONT
  • initctlsystemd パッケージは、プロセス #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-manager1とは異なるAPIを使用し、既存のシステムユーティリティを使用してシステムのシャットダウンや再起動などのタスクを実行することをお勧めします。systemd

追加読書

関連情報