※目次をクリックすると目次の下部にコンテンツが表示されます。・systemdはシステム管理デーモン、ライブラリおよびユーティリティの一式であり、管理および設定における中心的プラットフォーム。・Linuxのinitシステムを置き換えることを第一の目標。initデーモンに加えjournald、logindおよびnetworkdの各デーモンとそれ以外の多くの低レベルコンポーネントを含む、systemdにバンドルされた全てのソフトウェアを指している。(systemdに含まれるファイルの抜粋)/etc/rc.d/init.d/README/usr/sbin/init/etc/systemd/journald.conf/usr/lib/systemd/systemd-journald/usr/share/man/man5/journald.conf.5.gz/usr/share/man/man8/systemd-journald.8.gz/etc/systemd/logind.conf/usr/lib/systemd/systemd-logind/usr/share/man/man5/logind.conf.5.gz/usr/share/man/man8/systemd-logind.8.gz/usr/lib/systemd/system/network.target・systemdは、ユーザーログイン、システムコンソール、デバイスホットプラグ(udevを参照)、計画された実行ロギング(cronを置き換える)、ホスト名およびロケールを処理することで、Linuxシステムで共通なsystemd以外のサービスの多くを統合する。・systemdはinitデーモンのように、systemd自身を含むバックグランドプロセスである全てのデーモンを管理するデーモン。・systemdはブート中に開始される最初のデーモンであり、シャットダウン中に終了される最後のデーモン。・systemdデーモンはユーザー空間のプロセスツリーのルートとなる。–switc・systemdはその起動過程の要素を並行に実行する。それは伝統的な起動過程のシーケンシャルなアプローチよりも高速である。プロセス間通信(IPC)のため、systemdはUNIXドメインソケットとD-Busを実行しているデーモンから使えるようにする。・将来の再呼び出しに備えて、systemd自身の状態をスナップショットに保存することもできる。●ユニットファイル・systemdはデーモンごとの起動シェルスクリプトを置き換えるため、宣言型言語を使う設定ファイル(ユニットファイル)に各デーモン用の初期化命令を記録する。・ユニットファイルの型にはservice、socket、device、mount、automount、swap、target、path、timer(cronライクなジョブスケジューラとして使用できる)、snapshot、sliceおよびscopeなどがある。●コアコンポーネントおよびライブラリ・systemdは統合されたアプローチに従い、起動シェルスクリプト、pm-utils、inetd、acpid、syslog、watchdog、cronおよびatdなどの様々なデーモンやユーティリティの代替も提供する。○コアコンポーネント・systemdシステムおよびサービスマネージャ・systemctlsystemdのシステムおよびサービスマネージャの状態を監視、制御。・systemd-analyzeシステムブートアップパフォーマンス統計を決定し、システムおよびサービスマネージャからの他の状態と追跡情報を回収することために使うことができる。○localed補助コンポーネント・systemd-consoled・systemd-journaldイベントロギングを担当するデーモン。そのログファイルは追加専用のバイナリファイル。システム管理者はシステムイベントのログ出力をsystemd-journald、syslog-ngまたはrsyslogのどれで行うかを決めることができる。・systemd-logindConsoleKitを置き換える、統合されたログインマネージャ・networkd様々なネットワーク設定。・systemd-timedatedシステム時間、システムタイムゾーン、またはUTCとローカルタイムゾーンシステムクロックとのどちらかの選択といった時間関連設定のコントロールに使えるデーモン。D-Busでアクセスできる。・udevdLinuxカーネル用のデバイスマネージャである。/devディレクトリを処理し、さらにデバイスの装着および脱着時におけるファームウェアのロードなどのユーザー空間アクションを全て処理する。・libudevudevを利用するための標準ライブラリで、これによりサードパーティアプリケーションがudevリソースを照会できる。initもしくはUpstartと配布されており、/etc/rc.d/init.d/にあるinitスクリプトを使用していた。これらのinitスクリプトは通常、bashで書かれており、システム管理者がシステムの状態とシステム内のデーモンを管理できるようになっていた。CentOS7では、これらのinitスクリプトは、サービスユニットに代わっている。・サービスユニットは、ファイル拡張子.serviceで終わり、initスクリプトと同様の目的を果たす。サービスユニットは、/usr/lib/systemd/systemや/etc/systemd/systemディレクトリに保存されている。systemctlコマンドラインを使用する。・serviceおよびchkconfigはシステム内で利用可能でまだ機能するが、これらは互換性のために含まれており、使用を控えることが推奨されている。・各サービスユニットの完全な名前(UNIT)を表示し、その後にユニットが読み込み済みかどうか(LOAD)、高レベル(ACTIVE)および低レベル(SUB)のユニットのアクティベーション状態、および簡単な説明(DESCRIPTION)が続く。service・デフォルトでは、アクティブなユニットのみを表示する。コマンドラインオプションを付けてコマンドを実行する。list-unit-files・すべての利用可能なサービスユニットを一覧表示させて、それらが有効かどうかをチェックできる。name.service・表示内容Loadedサービスユニットが読み込まれているかどうか、ユニットファイルへの絶対パス、ユニットが有効かどうかについての説明。Activeサービスユニットが実行中かどうかの情報の後に、タイムスタンプが続く。PID対応するシステムサービスのPIDの後に、その名前が続く。Status対応するシステムサービスについての追加情報。Process関連プロセスについての追加情報。Groupについての追加情報。name.service・選択されたサービスユニットの[Install]セクションを読み込み、/etc/systemd/system/ディレクトリーおよびそのサブディレクトリーにある/usr/lib/systemd/system/name.serviceファイルへの適切なシンボリックリンクを作成する。・このコマンドは既存のリンクの上書きはしないので、シンボリックリンクが確実に再度作成されるようにするには、reenableオプションを使用する。name.service・選択されたサービスユニットの[Install]セクションを読み込み、/etc/systemd/system/ディレクトリーおよびそのサブディレクトリーから/usr/lib/systemd/system/name.serviceファイルへの適切なシンボリックリンクを削除する。name.service・/etc/systemd/system/name.serviceファイルを/dev/nullへのシンボリックリンクに置き換え、実際のユニットファイルがsystemdにアクセスできないようにする。initもしくはUpstartと配布されており、特定モードのOSを表すランレベルを実装していた。targetsに代わっている。targetsは、ターゲットユニットで表される。unitsをグループ化している。・RHEL7では、以前のバージョンにおける標準ランレベルとほぼ似通った多くの定義済みターゲットが同梱されている。互換性目的で、これらのターゲットをSysVランレベルに直接マッピングするエイリアスも提供されている。runlevel6.target、reboot.target・systemdターゲットを表示、変更、もしくは設定するにはsystemctlユーティリティーを使用する。現在読み込まれているターゲットユニットを表示。target現在のターゲットを変更。get-defaultmulti-user.target/etc/systemd/system/default.targetにあるシンボリックリンクを解決し、その結果を表示する。name.targetこのコマンドは、/etc/systemd/system/default.targetファイルを/usr/lib/systemd/system/name.target(nameは使用するターゲットユニット名)へのシンボリックリンクで置き換える。(DESCRIPTION)を表示。name.targetこのコマンドは、”name”という名前の付いたターゲットユニットとすべての依存ユニットを開始し、即座にその他すべてを停止します。・シングルユーザーモードを提供。・通常の起動プロセスを完了できない状況におけるシステムの修復を可能にする。・レスキューモードでは、システムはすべてのローカルファイルシステムのマウントといくつかの重要なシステムサービスの開始を試みるが、ネットワークインターフェイスのアクティブ化や、システムに同時に他のユーザーによるログインを許可したりすることはしない。・CentOSでは、レスキューモードはシングルユーザーモードと同等であり、rootパスワードを必要とする。rescue.targetと似ているが、現在システムにログインしているすべてのユーザーに通知メッセージも送信する。・systemdがこのメッセージを送信しないようにするには、このコマンドに–no-wallオプションを付けて実行する。・可能な限り最小限の環境を提供し、レスキューモードに入れないシステムの状態におけるシステムの修復を可能にする。・システムはrootファイルシステムを読み込み専用でマウントし、他のローカルファイルシステムのマウントは試みない。ネットワークインターフェイスのアクティブ化も行わず、限定的な必須サービスのみを起動する。・rootパスワードを必要とする。似ているが、現在システムにログインしているすべてのユーザーに通知メッセージも送信する。オプションを付けて実行する。オプションを付けて実行する。オプションを付けて実行する。suspend(旧バージョン:pm-suspend)・このコマンドは、システムの状態をRAMに保存し、RAMモジュールを除いてマシンのほとんどのデバイスの電源を切る。マシンの電源を戻すと、システムは再起動せずにRAMからその状態を復元する。システムの状態がハードディスク上ではなくRAMに保存されるので、システムのサスペンドモードからの復元は、休止状態からの復元よりも大幅に速くなる。結果として、システムをサスペンドした状態は、停電に対して脆弱となる。hibernate(旧バージョン:pm-hibernate)・このコマンドは、システムの状態をハードディスクドライブに保存し、マシンの電源を切る。マシンの電源を戻すと、システムは再起動せずに保存されたデータからその状態を復元する。システムの状態がRAMではなくハードディスク上に保存されるので、マシンはRAMモジュールに電力を維持する必要がない。その結果、システムの休止状態からの復元は、サスペンドモードからの復元よりも大幅に遅くなる。InterfaceDocumentation=man:systemd.special(7)Requires=multi-user.targetAfter=multi-user.targetConflicts=rescue.targetWants=display-manager.serviceAllowIsolate=yes[Install]Alias=default.target・Requires=multi-user.targetグラフィカルターゲットを起動する前にmulti-user.targetに含まれるものをすべて開始する。・Wants=display-manager.service開始したら、”Wants”エントリーに従ってdisplay-manager.serviceサービスを開始。これにより、GNOMEディスプレイマネージャーが実行される。rescue.targetAllowIsolate=yes[Install]Alias=default.target・Requires=basic.targetマルチユーザーサービスを開始する前に、basic.targetターゲットに含まれるものをすべて開始する。・サービスを有効にすると、/etc/systemd/system/multi-user.target.wantsディレクトリにシンボリックリンクが保存される。slices.targetRefuseManualStart=yes・Requires=sysinit.targetこのターゲットを開始する前にsysinit.targetターゲットに含まれるものをすべて開始する。・wantsディレクトリ内のすべてのユニットを開始ディレクトリには、firewalld、microcode、SELinux、カーネルメッセージ、ロードするモジュールのサービスなどがある。swap.targetファイルシステムのマウントとスワップデバイスを有効にする。サービスの開始が含まれる。マウントを開始し、ロギングし、カーネルオプションの設定し、udevdデーモンを起動するハードウェアの検出、ファイルシステムの暗号解読の許可などを有効にする。systemdのサービスファイルの概要SysVのinitスクリプトは、systemdではサービスファイルに相当する。以下、httpdのサービスファイル例にサービスファイルの概要を示す。●サービスファイルの保存場所httpdのサービスファイルのパス/usr/lib/systemd/system/httpd.service/etc/systemd/system/ディレクトリでも良いようです。${MAINPID}KillSignal=SIGCONTPrivateTmp=true[Install]WantedBy=multi-user.target・[Unit]セクションサービスの一般的な情報を記述。依存するターゲットを指定。name.service・選択されたサービスユニットの[Install]セクションを読み込み、/etc/systemd/system/ディレクトリーおよびそのサブディレクトリーにある/usr/lib/systemd/system/name.serviceファイルへの適切なシンボリックリンクを作成する。“SIGTERM”シグナルがサービスに属するすべてのプロセスに送られます。httpd.service“SIGKILL”を使用したい場合は、以下のようにします。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。