デーモン化
使いたいスクリプトなどを準備する。
次に /etc/systemd/system/ にファイルを作成。
ファイル名は hoge.survice とする。
[Unit] Description = hoge daemon After = local-fs.target network-online.target ConditionPathExists = /usr/local/bin [Service] ExecStart = /usr/local/bin/hoge Restart = always Type = simple StandardOutput=syslog StandardError=syslog SyslogIdentifier=hoge [Install] WantedBy = multi-user.target
大体の設定はファイルを見ればなんとなく分かりそう。
プログラムによっては先に何かが起動していないと失敗するものも多くあると思う。
[Unit]内のAfterはそのようなプログラムの為にある。
デーモン化したい場合、何かエラーがおきても再起動して欲しいので、[Service]のRestartはalwaysにしておく。
次にログ出力はここで指定。
StandardOutput=syslog StandardError=syslog SyslogIdentifier=hoge
ログ用の設定ファイルを作成
/etc/rsyslog.d/hoge.conf
のようなファイル名で作成。
ファイル内で先ほどのSyslogIdentifierを使ってログを設定。
if $programname == 'hoge' then { action(type="omfile" file="/var/log/hoge.log") }
これで
sudo systemctl enable hoge.service
をすれば登録されるので次回の起動時から動くはず。 ログは /var/log/hoge.log に出力される。