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