今回はAmazonLinux2のSystemdに自作サービスを追加してみようと思います。
手順
AmazonLinux2に自作のサービスを追加するための手順です。
サービスとして追加するスクリプトの準備
今回は以下のような約1秒ごとにdateを出力するようなスクリプト()(wawawa.sh)をサービスとして追加してみようと思います。
#!/bin/bash
while true
do
date >> /home/ec2-user/result.log
sleep 1
done
ユニットファイルを作成する
/etc/systemd/system配下にユニットの定義ファイルを作成します。
wawawa.serviceのところは好きな名前に書き換えてあげてください。
$ sudo vim /etc/systemd/system/wawawa.service
ファイルの中身をこんなかんじに編集してあげます。
[Unit] Description = wawawa_shell [Service] ExecStart = /home/ec2-user/wawawa.sh Restart = always Type = simple [Install] WantedBy = multi-user.target
各項目のちょっとした解説
| 項目 | 説明 |
|---|---|
| Description | このサービスの説明 |
| ExecStart | 起動するコマンドのPATH |
| Restart | 停止時の起動条件alwaysを指定してあげると停止時に再起動してくれる |
| WantedBy | 起動時に設定した.wantsディレクトリにリンクを作成する |
サービスとして認識されたかどうか確認する
以下コマンドを実行してサービスとして認識されたかどうか確認します。
まだ有効化(enable)していませんのでdisaabled でOKです。
sudo systemctl list-unit-files --type=service | grep wawawa wawawa.service disabled
サービスを有効化(enable)する
サービスを起動する前に有効化してあげる必要があります。
以下コマンドを実行します。
$ sudo systemctl enable wawawa Created symlink from /etc/systemd/system/multi-user.target.wants/wawawa.service to /etc/systemd/system/wawawa.service.
念のため有効化されたかどうか確認
enableになっていればOK
$ sudo systemctl list-unit-files --type=service | grep wawawa wawawa.service enabled
サービスを起動する
さていよいよサービスを起動していきます。
$ sudo systemctl start wawawa
なにも問題なければ特に出力もありません。
続いてサービスが本当に起動できているのかどうか確認していきます。
以下のようにActive: active (running)となっていれば起動成功しています。
$ sudo systemctl status wawawa
● wawawa.service - wawawa_shell
Loaded: loaded (/etc/systemd/system/wawawa.service; enabled; vendor preset: disabled)
Active: active (running) since 金 2018-03-16 23:44:03 UTC; 10s ago
Main PID: 3323 (wawawa.sh)
CGroup: /system.slice/wawawa.service
├─3323 /bin/bash /home/ec2-user/wawawa.sh
└─3346 sleep 1
ファイルにも日時がリダイレクトされ続けています!
$ tail -F result.log Fri Mar 16 23:46:10 UTC 2018 Fri Mar 16 23:46:11 UTC 2018 Fri Mar 16 23:46:12 UTC 2018 Fri Mar 16 23:46:13 UTC 2018
おわりに
Systemdを利用して自分でつくったサービス(シェル)を登録することができました。
マシン起動時に自動でサービスが起動されますのでデーモンとして常駐させておきたいようなシェルスクリプトがあれば登録するのがいいと思います!!!
![[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 [試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識](https://images-fe.ssl-images-amazon.com/images/I/51r%2BeNsY2fL._SL160_.jpg)
[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識
- 作者: 武内覚
- 出版社/メーカー: 技術評論社
- 発売日: 2018/02/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る