CentOS 7 - Systemd

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 メモ書き