pexels-photo-3785935.jpeg

systemctlの使い方

 
0
このエントリーをはてなブックマークに追加
Kazuki Moriyama
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の実行登録方法

  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で動く
info-outline

お知らせ

K.DEVは株式会社KDOTにより運営されています。記事の内容や会社でのITに関わる一般的なご相談に専門の社員がお答えしております。ぜひお気軽にご連絡ください。