LoginSignup
2
2

More than 5 years have passed since last update.

特にデーモンとして動くことを意識していなかったPythonスクリプトをCentOS7で常時起動させておくためにsystemdを使った時のメモ

Last updated at Posted at 2017-03-15

<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がきちんと終わる。

続きは後で。

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2