Pythonでデーモンを作ったので、その手順のメモ

確認環境

Env Ver
OS 2020-05-27-raspios-buster-arm64
Python 3.7.3
python3-systemd 234-2+b1

やったこと

  1. python-systemdのインストール
    1. sudo apt-get install python-systemd python3-systemd
  2. ~/foo.pyを以下の内容で作成

    from systemd import journal
    journal.send('Hello world')
    journal.send('Hello, again, world', FIELD2='Greetings!', FIELD3='Guten tag')
    journal.send('Binary message', BINARY=b'\xde\xad\xbe\xef')
    
  3. 実行権限を付与する
    1. chmod 755 ~/foo.py
  4. systemdの定義ファイルを次の要領で作成

    1. sudo nano /etc/systemd/system/foo.serviceとして以下の内容を書く
    [Unit]
    Description = Foo
    
    [Service]
    ExecStart = python3 /home/pi/foo.py
    Restart = always
    Type = simple
    
    [Install]
    WantedBy = multi-user.target
    
  5. デーモンを有効化する
    1. sudo systemctl enable foo.service
  6. デーモンを開始する
    1. sudo systemctl start foo.service
  7. ジャーナルを見る
    1. systemctl status roomenv.service
  8. なんかログが出てれば成功
    1. ExecStartにsudoを書くと動かない(root権限で動作する模様)