rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

Systemd ユニット自作

2020 Nov. 07.

ユニット定義ファイル保管場所

/etc/systemd/system/
( /usr/lib/systemd/system/ はパッケージが提供するサービスのファイルを配置する場所)

ネットワーク起動を要する場合、ネットワーク起動を把握できるようにする

ネットワーク設定を管理するデーモンsystemd-networkd(ネットワークデバイスが立ち上がるとそれを検出して設定を行う)を有効化する。

# systemctl enable systemd-networkd
# systemctl enable systemd-networkd-wait-online


ユニット定義ファイル作成

noip2の起動例
/etc/systemd/system/noip_update.service

[Unit]
Description = no-ip update client  # 任意の定義文字列
Wants=network-online.target  # network-online.targetを前提として必要とする
After=network-online.target  # 「ネットワーク起動後」を要件とする

[Service]
Type=forking
TimeoutStartSec=30  # 起動時タイムアウト秒数
ExecStart=/usr/local/bin/noip2
Restart=on-failure  # 0以外の終了コードで停止した際に再起動
RestartSec=30  # 再起動するまでの待ち時間秒数

[Install]
WantedBy=multi-user.target  # このユニットをmulti-user.targetの前提ユニットとする



ユニットの有効化

# systemctl daemon-reload  (設定ファイルの再読込)
# systemctl enable noip_update.service