Contents
はじめに
昨年RHEL7と続いてCentOS7が公開され、Systemdの採用などコマンド操作に大きな変更が入ったため、調べてメモっていたが以後全く触ることもなく時間だけが過ぎてしまい、きれいに忘れてしまった。
その時まとめたメモは残っているので、復習兼ねての備忘録。
特徴(従来のシステム起動処理の仕組みとの比較)
システム名 | 仕組み |
SysVinit | ラン・レベルに応じてサービスを決められた順番に起動する |
Upstart | /etc/event.dディレクトリ配下に格納されている定義ファイルでイベントに応じてサービスを並列に起動する |
Systemd | さまざまな処理をUnitとして定義し、Unit同士の依存関係を維持して最適な順序で並列に処理する |
Unitの導入
Unit(拡張子) | 内容 |
service | サービスの起動・停止 |
device | デバイス情報(udevがデバイスを認識) |
mount | ファイルシステムのマウント(/etc/fstabを元に自動生成) |
swap | swap領域の有効化(/etc/fstabを元に自動生成) |
socket | ソケットによるサービス起動(接続があったときに指定のデーモンを起動) |
target | 複数のUnitをグループ化する設定(Unit間の依存や起動順を設定できる) |
Unitの一覧表示
# systemctl # systemctl list-units less表示しない場合 # systemctl --no-pager
自動起動の確認
# systemctl list-unit-files --typeオプション:表示するUnitの指定 # systemctl list-unit-files --type=service Unitを指定して自動起動の確認 # systemctl is-enabled sshd.service
enabled:有効
disabled:無効
static:自動起動の設定なし
自動起動の設定
有効・無効
有効 # systemctl enable firewalld.service 無効 # systemctl disable firewalld.service
Unit自体の無効化
# systemctl mask firewalld.service ln -s '/dev/null' '/etc/systemd/system/firewalld.service' # systemctl is-enabled firewalld.service masked ※/etc/systemd/system配下にUnit定義ファイルが存在していた場合、musk操作はできない
Unitの起動停止
起動 # systemctl start sshd.service 停止 # systemctl stop sshd.service 再起動 # systemctl restart sshd.service 設定読み込み # systemctl reload sshd.service 状態 # systemctl status sshd.service
.serviceは省略可能(Unitを示している拡張子を省略した場合、serviceとして扱われる)
Unit定義ファイルの配置先
ディレクトリ | 内容 |
/usr/lib/systemd/system | システムデフォルトの配置先 |
/etc/systemd/system | Unit定義ファイルの追加・修正を行うディレクトリ |
Systemdは/etc/systemd/system配下のUnit定義ファイルを優先するため、設定を変更する場合は/usr/lib/systemd/system配下のUnit定義ファイルを/etc/systemd/system配下にコピーして編集する。
Unit定義ファイルの変更をSystemdに反映する場合は以下のコマンドを実行する
# systemctl daemon-reload
Unitの依存関係
# systemctl list-dependencies sshd.service
オプション | 内容 |
--reverse | 対象Unitに依存しているUnit一覧を表示する |
--after | 対象Unitよりも先に起動されるべきUnit一覧を表示する |
--before | 対象Unitよりも後に起動されるべきUnit一覧を表示する |
参考
「Systemd」を理解する ーシステム起動編
Systemd入門(1) - Unitの概念を理解する
Life with open mind: Systemdコマンド早見表(CentOS 7対応)
Linux女子部 systemd徹底入門
systemd (日本語) - ArchWiki
Linux - Systemd メモ書き