SysV init(init)に代わる
Systemdとは?
伊東 拓矢
今回の発表の理由
• Initに代わってSystemdが各ディストリビュー
ションで主流になってきている
• 2011年5月24日 Fedora 15以降からデフォルト
• 2014年6月10日 RHEL 7からデフォルト
• 2014年7月7日 CentOS 7からデフォルト
Systemdの優れている点
• 並列処理によりinitに比較し、起動時間が短
縮される
• ランレベルによる自動実行以外にイベントをト
リガーとした実行が可能
• サービスごとにcgroupsでリソース管理する機
能が標準搭載
コマンドの違い
サービスの実行
• Init
• Systemd
service SERVICE_NAME start/stop/restart/status
/etc/init.d/SERVICE_NAME start/stop/restart/status
service SERVICE_NAME start/stop/restart/status
systemctl start/stop/restart/reload/status SERVICE_NAME
コマンドの違い
サービスの自動起動設定
• Init
• Systemd
実行: chkconfig SERVICE_NAME on/off
実行: systemctl enable/disable SERVICE_NAME
チェック: chkconfig –list SERVICE_NAME
チェック: systemctl is-enabled SERVICE_NAME
ディレクトリの違い
• Initの場合
/etc/init.d以下にスクリプトが配置される
• Systemdの場合
ディレクトリ 説明
/usr/lib/systemd/system システムデフォルトの設定。RPMパッ
ケージが提供するデフォルト設定を配置
する。
/etc/systemd/system ユーザ設定。ここに同名のファイルを配
置するとこちらのファイルの内容が優先
される。
Unitとは?
Unitのタイプ 説明
target 複数のUnitをまとめるために使用する
service 指定のバイナリを実行する(主にはデーモンの起動に使用
する)
mount 指定のファイルシステムをマウントする
automount オートマウント処理を実施する(automountdの代替的な機
能)
socket systemdがSocketをListenして、接続があるとプロセスに受け
渡す(xinetdの代替的な機能)
device udevから通知されたデバイスを表す
path 指定のファイルが作成されると、指定されたサービスを起動
する
自動起動設定(依存関係の定義)
コマンド: systemctl enable/disable httpd
実際の処理
ln -s '/usr/lib/systemd/system/httpd.service'
'/etc/systemd/system/multi-user.target.wants/httpd.service'
Serviceファイル
• [Unit]セクション
Serviceファイル
• [install]セクション
使えそうなコマンド一覧
稼働中のUnit一覧表示
$ Systemctl list-units
インストールされているUnitファイル一覧
$ systemctl list-unit-files
サービスの無効化
$ systemctl mask/unmask SERVICE_NAME
サービスの状態の確認
$ systemctl status SERVICE_NAME
Unitの依存関係一覧表示
$ systemctl list-dependencies Unit_NAME
参考URL
• Sytemd入門 – Unitの概念を理解する
http://d.hatena.ne.jp/enakai00/20130914/1379146157
• systemdを本番運用してわかったこと
http://alpha.mixi.co.jp/entry/2013/12063/

Systemd入門

Editor's Notes

  • #6 実際にコマンド実行してみる
  • #9 実際のファイルを見てみる