作業環境
- CentOS 7.2
systemd とは
systemd とは、Lennart Poettering と Kay Sievers を中心に開発された、Linux の起動処理やシステム管理を行う仕組みのことです。
2011年5月にメジャー Linux ディストリビューションの Fedora に採用され、2014年12月にリリースされた CentOS 7 にも採用されました。
systemd はこれまで使われてきたデーモンごとの起動シェルスクリプトに代わり、『ユニットファイル』と呼ばれる設定ファイルに各デーモン用の初期化命令を記述します。
コマンドを作る
まずは systemd に登録して動作させるスクリプトを用意します。
今回は1秒ごとに現在時刻をログに追記していくスクリプトで試してみたいと思います。
- /opt/date.sh
#!/bin/bash while true do date >> /tmp/date.log sleep 1 done
実行権限を与えます。
sudo chmod 0755 /opt/date.sh
ユニットファイルを作成する
- /etc/systemd/system/date.service
[Unit] Description = date log daemon [Service] ExecStart = /opt/date.sh Restart = always Type = simple [Install] WantedBy = multi-user.target
Service セクションの ExecStart に実行したいコマンドを記述します。
Restart はサービスのメインプロセスが停止した際の動作を指定することができ、always を指定することによって、常に再起動を試みます。
サービスとして認識されているか確認する
それでは、作成したユニットファイルがサービスとして認識されているか確かめます。
$ sudo systemctl list-unit-files --type=service | grep date.service date.service disabled
Service として認識されているのが確認できました!
サービスを起動する
それではサービスを起動しましょう。
$ sudo systemctl start date
自動起動の設定も行っておきましょう。
$ sudo systemctl enable date
ステータスの確認を行ってみます。
$ sudo systemctl status date ● date.service - date daemon Loaded: loaded (/etc/systemd/system/date.service; enabled; vendor preset: disabled) Active: active (running) since 金 2016-09-23 14:45:09 UTC; 1h 49min ago Main PID: 4168 (date.sh) CGroup: /system.slice/date.service ├─ 4168 /bin/bash /opt/date.sh └─14162 sleep 1 9月 23 14:45:09 localhost.localdomain systemd[1]: Started date daemon. 9月 23 14:45:09 localhost.localdomain systemd[1]: Starting date daemon...
サービス起動の確認がとれたので、ログファイルへの書き込みがきちんと行われているかも確認してみます
$ tail -f /tmp/date.log Fri Sep 23 16:37:31 UTC 2016 Fri Sep 23 16:37:32 UTC 2016 Fri Sep 23 16:37:33 UTC 2016 Fri Sep 23 16:37:34 UTC 2016 Fri Sep 23 16:37:35 UTC 2016 Fri Sep 23 16:37:36 UTC 2016 Fri Sep 23 16:37:37 UTC 2016 Fri Sep 23 16:37:38 UTC 2016 Fri Sep 23 16:37:39 UTC 2016 Fri Sep 23 16:37:40 UTC 2016 Fri Sep 23 16:37:41 UTC 2016 ...
ログファイルにもきちんと書き込みが行われているのが確認できました。
まとめ
systemd を使うことによって簡単に自作スクリプトをサービス化して起動することができました。
これから、ユニットファイルの書き方であったり、systemd の概念的なところをもう少し詳しく勉強していきたいと思います。
標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド
- 作者: 有限会社ナレッジデザイン大竹龍史,市来秀男,山本道子,山崎佳子
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2017/03/22
- メディア: 単行本
- この商品を含むブログを見る