いつ。 。 。いつオペレーティングシステム
SIGTERM
プロセスを閉じて使用して終了しますSIGKILL
が、これらのシグナルはカーネルからは出ません(または呼び出しから直接は出ません)。kill()
pidが0または負のpidの場合、カーネルは複数のプロセスにシグナルを送信します。彼らは-から来たサービス管理者がサービスを終了します。そしてからシステム管理メカニズムの一部であるさまざまな最後の手段ですべてを殺すアプリケーションモードプログラム:例えばkillprocs
Van Smulenbergのrc
脚本、これkillprocs
OpenRCスクリプト、しかもsystemd-shutdown
プログラム。
オペレーティングシステムが終了すると、
サービス管理者はサービスを終了する必要があることをどのように知ることができますか?サービス管理者は、カーネルまたは一部のプロセスからSIGKILL、SIGTERM、またはその他の信号を受信して通知しますか?
同様に、システム管理メカニズムの一部であるさまざまな最後の手段ですべてを殺すアプリケーションモードプログラムがSIGTERMとSIGKILLを発行する必要があることをどうやって知ることができますか?
ありがとうございます。
ベストアンサー1
サービス管理者は、システム管理者がシステムの停止または再起動を要求したため、サービスを終了する必要があることを知っています。管理者が実行するか、reboot
ユーザーがデスクトップ環境で適切なオプションを選択すると、プロセスがinit
再起動するように求められます(現在のカーネルではありません)。プロセスは、カーネルに実際に再起動を要求する前にinit
実行するように構成されたすべての操作を処理します。
最後の手段であるすべてを終了するステップは、終了プロセスの一部です。シャットダウンプロセスで実行されているすべてのサービスを停止する必要がある場合は、通常しばらく待ってから、残りのプロセスをすべて終了します。
初期化システムごとにその実装が異なります。を使用すると、sysvinit
停止または再開は、最初に実行をinit
適切なランレベルに切り替える必要があるランレベル遷移です(参照:telinit
マンページ詳細はこちら)。 systemdの場合、最終的に実行されるターゲットです。systemd-halt
サービス。