JP7FKFの備忘録

ヒトは,忘れる生き物だから.

systemdにpython scriptをservice登録してdaemon化する

もう十分internetに知見が転がっていると思うが,pythonをdarmon化したくなったので自分のためにもメモっておく. 適当にservice fileを書いてやればいいだけ.もはやpythonだからとか関係ない. ただshebangは書いておかないとダメかも.permission的にはもちろん実行権限をつけておく.

ex:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

(omit...)
  • service fileを書く
% cat /etc/systemd/system/testscript_py.service
[Unit]
Description = testscript_py

[Service]
ExecStart = /home/jp7fkf/testscript_py/run.py
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target
  • daemon-reloadでservice fileを読み込む
% sudo systemctl daemon-reload
  • 読まれた.適宜 sudo systemctl enable testscript_py やらをすればいい
[jp7fkf@lab1 18:11:52] ~
% systemctl status testscript_py
● testscript_py.service - testscript_py
   Loaded: loaded (/etc/systemd/system/testscript_py.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-03-04 00:47:02 JST; 17h ago
 Main PID: 1857 (python3)
    Tasks: 12 (limit: 4434)
   CGroup: /system.slice/testscript_py.service
           └─1857 /home/jp7fkf/.pyenv/versions/3.8.1/bin/python3 /home/jp7fkf/testscript_py/run.py