#author("2025-04-29T15:18:09+09:00","default:k1rou","k1rou")
#author("2025-04-29T20:51:40+09:00","default:k1rou","k1rou")
*systemd [#i3afede8]
-Linuxのサービスを管理する仕組み
-CentOS7以降で導入された

*systemdの仕組み [#x484f2bf]
**ユニット [#r7cf2c06]
-サービスを管理する単位
-サービスを並列で起動することが可能

***ユニットのタイプ [#sc26a046]
-service
-target
-mount
-device
-socket

**ターゲット [#re1f7164]
-制御対象となる複数のサービスをグループ化する仕組み
-ユニットの起動する順番や依存関係を定義することが可能


*コマンド [#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 |
| 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> ※マスク解除

-システムの操作
 systemctl poweroff ※システムを停止
 systemctl reboot ※システムを再起動

-Unitファイルを再読み込み ※Unitファイルを追加・変更したら毎回行う
 systemctl daemon-reload

***ターゲット [#s39b1a3a]
-デフォルトのターゲットを表示
 systemctl get-default
-デフォルトのターゲットを設定
 systemctl set-default <target-name>

-ターゲットの切り替え
 systemctl isolate rescue.target ※シングルユーザーモード
 systemctl isolate multi-user.target ※マルチユーザーモード
 systemctl isolate emergency.target ※緊急モード

**設定ファイル(ユニットファイル) [#h119d62b]
***/usr/lib/systemd/system/ [#h4e3af6b]
-標準のユニットファイル(通常はパッケージが提供) ※Red Hat系
-ユニットファイルを変更する場合、標準のユニットファイルを/etc/systemd/system/ にコピーして、コピー先のファイルを変更する(推奨)

***/lib/systemd/system/ [#y9807c7c]
-標準のユニットファイル(通常はパッケージが提供) ※Debian系

***/etc/systemd/system/ [#t4d635c5]
-ユーザーが独自に定義したユニットファイル
-標準のユニットファイルより優先される

*補足 [#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

*関連用語 [#y8e4920e]
-[[Linuxコマンド]]
-[[Linuxの起動・シャットダウン]]
-[[SysVinit]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS