systemctlの使い方

実行ファイルである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の実行登録方法

  1. /etc/systemd/system以下にserviceファイルを移動させる
  2. 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はデフォルトで環境変数を読んでくれない
環境変数の設定方法

  1. 読ませたい変数は/etc/sysconfig以下に定義
  2. *.serviceファイル内で[Service]の項にEnvironmentFile=1のファイルのパス
    このあとsudo systemctl daemon-reloadで動く
[書評]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 SSHの使い方
View Comments
There are currently no comments.