systemctlの使い方
Kazuki Moriyama (森山 和樹)
実行ファイルであるserviceファイルの作成方法
例
[Unit]
Description=test
[Service]
ExecStart=/bin/bash <実行したいファイルpath>
User=pi
Before=test0
[Install]
WantedBy=multi-user.target
Unit
Description
serviceの説明。
systemctlのログで表示される。
Service
ExecStart
実行されるコマンド。
絶対パスで記述する必要がある。
Serviceの実行登録方法
/etc/systemd/system
以下にserviceファイルを移動させるsudo sudo systemctl enable <serviceファイルの絶対パス>
で登録
Serviceの更新方法
serviceファイルを更新した後、sudo systemctl daemon-reload
ログの見方
systemctl status <service名>
service名はserviceファイルから拡張子を除したもの。
例えば、test.service
ならtest
がservice名。
Unitのリアルタイム標準出力の取得
journalctl -f -u <Unit名>
Service間の順序依存の定義
Serviceタグ内のBeforeもしくはAfterで定義する。
どちらかのファイルにBeforeなりAfterを定義したら、もう片方には書かなくて良い。
環境変数を読ませる方法
systemctlはデフォルトで環境変数を読んでくれない
環境変数の設定方法
- 読ませたい変数は/etc/sysconfig以下に定義
- *.serviceファイル内で[Service]の項にEnvironmentFile=
1のファイルのパス
このあとsudo systemctl daemon-reloadで動く