#author("2025-08-26T11:27:49+09:00","default:k1rou","k1rou") #author("2025-10-04T16:44:50+09:00","default:k1rou","k1rou") *systemd [#i3afede8] -[[Linux]]のサービスを管理する仕組み -CentOS7以降で導入された *systemdの仕組み [#x484f2bf] **ユニット [#r7cf2c06] -サービスを管理する単位 -サービスを並列で起動することが可能 ***ユニットのタイプ [#sc26a046] -service -target -mount -device -socket **ターゲット [#re1f7164] -制御対象となる複数のサービスをグループ化する仕組み -ユニットの起動する順番や依存関係を定義することが可能 **起動する順番 [#d84e9012] -default.target --poweroff.target --rescue.target --multi-user.target --graphical.target --reboot.target *コマンド [#cab51536] **systemctl [#if2cd13b] -サービスの状態を確認 systemctl status <service-name> ※サービスの稼働状況を表示 systemctl is-active <service-name> ※サービスが稼働中か表示 | 状態 | 説明 |h | loaded | プロセスが起動している状態 | | active(running) | プロセスが実行中 | | active(exited) | プロセスの起動が終了 | | active(waiting) | イベントの発生を待機中 | | inactive | 起動していない | | enabled | 自動起動がON | | disabled | 自動起動がOFF | -自動起動の設定 systemctl is-enabled <service-name> ※自動起動の設定を表示 systemctl enable <service-name> ※自動起動ON systemctl disable <service-name> ※自動起動OFF systemctl preset <service-name> ※自動起動ONまたはOFF(プリセットポリシーに従う) --自動起動が設定されているサービスの確認 ls -l /etc/systemd/system/multi-user.target.wants/ ※自動起動を有効にするとここにサービスのシンボリックリンクが作成される -サービスの起動/停止/再起動 systemctl start <service-name> ※起動 systemctl stop <service-name> ※停止 systemctl restart <service-name> ※再起動 systemctl reload <service-name> ※サービスの設定を再読み込み -Unitの状態を確認 systemctl list-dependencies ※Unitの依存関係を表示 systemctl list-dependencies <service-name> ※Unitの依存関係を表示 systemctl list-units ※起動している全てのUnitの状態を表示 systemctl list-unit-files ※全てのUnitを表示 systemctl list-unit-files -t service ※サービスの一覧を表示 systemctl list-unit-files -t service --state=enabled ※サービスの一覧を表示(自動起動が有効のみ) -Unitのマスク(手動でも起動できないようにする) systemctl mask <service-name> ※マスク有効 systemctl unmask <service-name> ※マスク解除 -Unitファイルを再読み込み ※Unitファイルを追加・変更したら毎回行う systemctl daemon-reload -システムの操作 systemctl poweroff ※システムを停止 systemctl reboot ※システムを再起動 -デフォルトのターゲット systemctl get-default ※デフォルトで設定されているターゲットを表示 systemctl set-default <target-name> ※デフォルトのターゲットの設定を変更 -モードの切り替え systemctl isolate poweroff.target ※システムを停止する systemctl isolate reboot.target ※システムを再起動する systemctl isolate rescue.target ※シングルユーザーモードに移行する systemctl isolate emergency.target ※緊急モードに移行する -ヘルプ --Tabを2回押すと引数の一覧が表示される ***ターゲット [#s39b1a3a] -デフォルトのターゲットを表示 systemctl get-default -デフォルトのターゲットを設定 systemctl set-default <target-name> -ターゲットの切り替え systemctl isolate rescue.target ※シングルユーザーモード systemctl isolate multi-user.target ※マルチユーザーモード systemctl isolate emergency.target ※緊急モード *設定ファイル(ユニットファイル) [#h119d62b] **ユニットファイルの種類 [#xd4910d7] ***/usr/lib/systemd/system/ [#h4e3af6b] -標準のユニットファイル(通常はパッケージが提供) ※Red Hat系 -ユニットファイルを変更する場合、標準のユニットファイルを/etc/systemd/system/ にコピーして、コピー先のファイルを変更する(推奨) ***/lib/systemd/system/ [#y9807c7c] -標準のユニットファイル(通常はパッケージが提供) ※Debian系 ***/etc/systemd/system/ [#t4d635c5] -ユーザーが独自に定義したユニットファイル -標準のユニットファイルより優先される **ユニットファイルの設定内容 [#q4b33b57] ***Unitセクション [#r9f9c7e8] -ユニットの説明、他のユニットとの依存関係を定義する | オプション名 | 説明 |h | Description | ユニットの説明 | | Documentation | ユニットのドキュメント | | After | 順序関係:指定されたユニットがアクティブになったら開始する | | Before | 順序関係:指定されたユニットより先にアクティブになる必要がある | | Requires | 依存関係:指定したユニットも起動する | | Wants | 依存関係:指定したユニットも起動する ※Requiresより依存関係が弱い | | Conflicts | 依存関係 ※Requiresと反対 | ***Serviceセクション [#td1c1af8] -サービスの起動・停止・再起動のコマンドや各種パラメータを定義する | オプション名 | 説明 |h | Type | 起動タイプ(simple[default], forking, oneshot, dbus, notify) | | ExecStart | ユニットの開始時に実行するコマンド | | ExecStartPre | | | ExecStartPost | | | ExecStop | ユニットの停止時に実行するコマンド | | ExecReload | 0 | | Restart | ユニットの再起動の設定&br;(no[default], always, on-success, on-failure, on-abnormal, on-abort, on-watchdog)&br;※killやタイムアウトで終了した場合に再起動する(stopやrestartの操作で終了した場合は再起動しない) | | RestartSec | 再起動する時の待機時間(単位:秒) | | User | サービスを実行するユーザー | | Group | サービスを実行するグループ | | Environment | サービスの環境設定 | | WorkingDirectory | サービスを実行する際の作業ディレクトリ | | StandardOutput | 0 | | StandardError | 0 | | SuccessExitStatus | 指定したステータスを正常終了として扱う | | KillMode | 0 | | ProtectSystem | 0 | | ProtectHome | 0 | | NoNewPrivileges | 0 | | PrivateTmp | 0 | | ReadOnlyPaths | 0 | | ReadWritePaths | 0 | ***Installセクション [#sbc79a3c] -ユニットの別名などを定義する | オプション名 | 説明 |h | WantedBy | 依存関係の設定(記述されているユニットから依存されていることを表す) | | RequiredBy | 0 | | Alias | 0 | | Also | 0 | | DefaultInstance | 0 | *補足 [#i5a6724c] -起動するターゲットの確認 --/etc/systemd/system/default.target ls -l /etc/systemd/system/default.target →default.targetのリンク先で確認する →multi-user.target であればマルチユーザ -起動するターゲットの変更 --default.target のリンク先を変更する(lnコマンド) *CUIツール [#sd69c4c4] **ntsysv [#wc1aa170] -インストール dnf install ntsysv -起動 ntsysv *関連サイト [#oa8fad74] -1.3. ユニットファイル構造 (RHEL9) - Red Hat Documentation~ https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/using_systemd_unit_files_to_customize_and_optimize_your_system/con_unit-file-structure_assembly_working-with-systemd-unit-files *関連用語 [#y8e4920e] -[[Linuxコマンド]] -[[Linuxの起動・シャットダウン]] -[[SysVinit]] -[[SystemdJournal]]