<3/15 17:32 追記ここから>
/usr/lib/systemd/system/ は、システムがインストールしたパッケージに含まれるサービスを置く場所とのご指摘をいただきました。
ご指摘の通り、/etc/systemd/system/ 下に置くほうがお行儀が良いようなので、下記は修正しています。ご指摘ありがとうございました!
<3/15 17:32 追記ここまで>
あとで追記予定。とりあえずホントのメモ。
下記のようなユニットファイルを /etc/systemd/system に「xxxxx.service」というファイル名で作成。
[Unit]
Description=Sample Hogehoge Script
[Service]
ExecStart=/home/hogemi/fuga.py hikisu
Restart=always
Type=simple
PIDFile=/var/run/fuga.pid
[Install]
WantedBy=multi-user.target
いくつか見つかった先人たちの例では、Type=forking となっているものが多かったが、これは、スクリプト側の挙動として「起動されたら自分自身は終了して子を残す」という動きをするスクリプトを対象としたもので、フォアグラウンドに居座り続けるタイプのものの場合には、Type=simpleとする。
上記のユニットファイルを fuga.service として作成していた場合、
systemctl start fuga
でサービスが起動する。
先程のユニットファイルのところで、Type=simpleとしない場合、フォアグラウンドに居座り続けるタイプのものを起動すると、systemctl自体が終わらない。Type=simpleとなっていると、コマンド発行時点でsystemctlがきちんと終わる。
続きは後で。