第4章 systemdでサービスを管理する systemdでサービスを管理する
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
Linuxコンピューターを起動するたびに、初期化システムが数十から数百のプロセスを起動する(システムのセットアップ方法による)。 この様子はスタートアップ画面で見ることができる(図4-1;グラフィカルなスタートアップ画面を隠すにはEscapeキーを、スタートアップ・メッセージを見るには )。
図4-1. Linuxの起動メッセージ
その昔、私たち は、起動時にプロセスを立ち上げるために、Unix System V初期化システム(SysV init)、BSD init、Linux Standard Base(LSB)initを持っていた。その時代は消えつつあり、今ではsystemdがLinuxのピカピカの新しいinitシステムだ。もちろん、レガシーなinitシステムをまだ使っているディストリビューションも数多くあるが、systemdはすべての主要なLinuxディストリビューションに採用されている。
この章では、あなたの Linux ディストリビューションが systemd を使っているかどうかを学ぶ。プロセス、スレッド、サービス、デーモンとは何か、systemd を使ってサービスを管理する方法を学ぶ。systemd のシステム・サービス・マネージャであるsystemctlコマンドに習熟する。
systemdは 、最新の複雑なサーバやデスクトップシステムに適した機能を提供するように設計されており、レガシーなinitシステムよりもかなり多くのことができる。 起動からシャットダウンまでの完全なサービス管理を提供し、起動時にプロセスを開始し、起動後にオンデマンドでプロセスを開始し、不要になったらサービスをシャットダウンする。システムログ、ファイルシステムの自動マウント、サービスの依存関係の自動解決、名前付けサービス、デバイス管理、ネットワーク接続管理、ログイン管理、その他多くのタスクなどの関数を管理する。
systemdは、すべてのLinuxシステムで同じように動作する、統合されたソフトウェアスイートとしてそのすべてをまとめている。あなたが使っている Linux は、本章の例とは多少異なるかもしれないことに注意してほしい。
systemd は、プロセスを同時並行的に起動し、必要なサービスだけを起動し、他のサービスは必要に応じて起動後に起動するようにすることで、起動時間を短縮し、システムリソースをより効率的に分配しようとする。 他のサービスに依存しているサービスは、そのサービスが利用可能になるまで起動を待つ必要がなくなる。必要なのは利用可能になるのを待っている Unix ソケットだけだからだ。レシピ4.9は、システムの起動を遅くしているプロセスを発見する方法を示している。
systemdのバイナリはC言語で書かれており、パフォーマンスが多少向上している。レガシーinitsはシェルスクリプトの塊であり、どんなコンパイル言語もシェルスクリプトより高速に演算する。
systemd はSysV initと後方互換性がある。ほとんどのLinuxディストリビューションは、 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access