追加読書

追加読書

~からオペレーティングシステムがシャットダウンしたら、サービス管理者はSIGTERMとSIGKILLをそのサービスに送信する必要があることをどのように知ることができますか?

systemdは初期化マネージャーでありサービスマネージャーです。

「初期化」と「サービスマネージャ」の違いは何ですか?

私の考えでは、両方とも同じように見えますか?

「サービスマネージャ」の代わりに「init」の例はありますか?その反対?

ありがとうございます。

ベストアンサー1

initプロセス#1で実行されるプログラムの一般的な名前。これは長年にわたってさまざまな形をとってきましたinit。混乱することは、管理者がプロセス#1と通信するために使用するコマンドの名前でもあります。それらは2つの異なるものとして最もよく見ることができ、AT&T Unixでは確かにそのように文書化されています。一部のソフトウェアでは、見つかったプロセスIDに応じて異なる動作を持つすべてのプログラムが混在していますが、状況をさらに混乱させるために、プロセス#1はシステムの存続期間中に複数の異なるプログラムを実行することがinitでき/initます/sbin/init。 、通常電子で接続されています)。

サービスマネージャ名前が示すように、サービスを管理するプログラムです。実際、長年にわたって広範なオペレーティングシステムソフトウェアでプロセス#1として実行される必要はありません。一般的にそうではありませんプロセス #1.サービスマネージャにはGerrit Papeが含まれます。runsvローラン ベルコート(Laurent Belcote)s6-supervise想像の中の名前までservice-manager私のおやつに。 AT&T Unix System 5 Release 4用のサービスアクセスツール、IBM AIX 3.1用のシステムリソースコントローラ、Solaris用のサービス管理ツールも含まれています。これは、統合され、一貫性があり、既知のコンテキストでサービスプログラムを生成し、これらのサービスを制御(開始、終了、再起動、およびキャンセル)し、残りのシステムが状態を照会するためのメカニズムを提供します。

システム管理者システムを管理し、システム状態の変化を処理するプログラムです。それは一般的ですはいプロセス#1として実行します。これは部分的にオペレーティングシステムのカーネルがこれを特別に処理し、停電イベントやカーネル仮想端末キーボードデバイスの特殊キーコード(Linux + または + + 生成プロセスで生成されたキーコードなど)のシステム状態変更要求に関する情報を提供します。送るからです。 #1)。また、起動時に初期システム状態を設定し、時にはシャットダウン時にシステム状態を終了する役割も担います。SIGWINCHSIGINT

システム状態の詳細はソフトウェアによって異なります。 van Smoorenburgはinit(現在は使用されていない)ランレベルの面で動作します。 BSDinitのステートマシンは完全に内部的で、次の状態を持ちます。走る/etc/rcマルチユーザーシングルユーザー

例示的な研究:

  • systemdプロセス#1プログラムです。 1 つのプログラムでサービス管理とシステム管理を実行し、そのプロセスとして実行されます。ただし、システム状態の仕上げを処理せずに、代わりにプロセス#1systemd-shutdownそのような理由で。システム状態の変更は通常、サービスマネージャの起動/停止の形式です。ターゲットこれにより開始/停止が発生します。提供するemergency.serviceたとえば、一部のサービスはアクティブsystemd-halt.serviceになるとそれ自体で実行され、追加のsystemctlシステム状態を変更するためにプロセス#1にコマンドを返します。この設計では、終了は2つの状態シーケンスです。
  • 想像の中の名前system-manager私のNosh Toosetには、システム管理者の役割のみを実行するプロセス#1プログラムがあります。起動時に初期化され、終了時に完了します。 (システム全体)サービスマネージャを作成してシステムを管理します。別のプロセスとしてそして様々な通貨system-controlイベントに応答するプログラム。 (たとえば、KVTキーボードの++コードをSIGINT使用すると、実行するサブプロセスが生成されます。)サービスマネージャにコマンドを実行して、サービスとターゲットを起動および停止します。同様に、複数のサービス/ターゲット呼び出しはコマンドを再送信します。system-control start secure-attention-keysystem-controlsystem-controlシステム管理者は、アクティブになると追加のシステム状態の変更を要求できます。サービスプロセスはプロセス#1の孫です。
  • runitシステム管理のみを実行するプロセス#1プログラム。他のプロセスと同様に、サービスマネージャを作成します。これはシェルスクリプトを呼び出すことによって行われます。 runitの人々はこれを「ステップ2」と呼び、チェーンにロードされます。runsvdirこれは次にrunsvプロセス#1の孫として複数のプログラムを生成する。サービスプロセスはプロセス#1の子孫です。システム管理は、シグナルとフラグファイルの組み合わせによってトリガーされる「3つのシェルスクリプトのみを実行する」アプローチを使用します。
  • システム5initは、システム管理のみを実行するプロセス#1プログラムです。前述のシステム状態ランレベルがあり、理論的にはサービス管理者でもあります。実際には、サービス管理機能があまりにも悪く、数年が経つと、TUIログインサービスの管理にも使用されなくなります。これは、前述のSAFおよびSRC形式のサブプロセスとして(より強力な)サービスマネージャを作成します。

    1990年には、使用中のランレベルの数が1に減り、system-manager数十年後に実際にはnoshとほぼ同じデザインが誕生しました。プロセス#1は、主にService Managerサブプロセスを生成し、カーネルイベントに応答してコマンドを実行するためのより多くのサブプロセスを生成しました。管理者コマンド。サービスプロセスは、プロセス#1の子孫であり、さまざまなサービスマネージャプロセスの孫であり子プロセスです。 (TUIログインサービスプロセスは、たとえばプロセス#1で作成されttymonたプロセスで作成されますsac。)

  • van Smoorenburgは、前述のSystem 3およびSystem 5がリリースされる数年前のUnixサービスマネージャと同じですinit。これはシステム管理者として機能し、一部のサービスも管理するプロセス#1プログラムです(たとえ機能が少ない方法ですが、システム5などの個々のサービスの起動/停止をきめ細かく制御することはできません)。サービス管理は、実際に実行されている場合(サービスプログラムをフォークしてほとんど忘れないでください)、子プロセスの他のプログラムで行われます。initinitinit

    systemdNosh ツールセットとは異なり、system-manager一部のシステム管理タスクは子プロセスで実行されるプログラムに委ねられます。どちらも、プロセス#1systemdでシステムの電源を切る/再開/停止する(カーネルの適切なシステムコールを実行する)最後の操作を実行していますsystem-manager(他のプログラムではsystemdの場合にもかかわらず)、van Smoorenburgシステムはこれを行います。呼び出して子プロセスで実行されますrc。たとえば、システムを停止するための最終システム呼び出しは、haltサブプロセスrc(プロセス#1のサブプロセス)として実行されるシェルスクリプトによって実行されます。haltプログラムを順次実行(プロセス#1の子孫として)実際にシステムコールを実行します。

追加読書

おすすめ記事