2018年10月5日金曜日

Linux:systemd で python スクリプトを起動できないとき

 Raspberry Pi zero WH で 、電源オン時に python スクリプトを systemd で起動させようとしたら苦労したのでメモ。

現象:
 python スクリプトを systemd から起動しようとしたらうまくいかない。


原因:
 python のモジュールをインストールしたとき、インストールしたユーザーでしか実行できない設定だった。
 また、自作モジュールのディレクトリ配置にも問題があった

解決策:
  pip でインストールしたモジュール:*.service の [Service]に、'User=pi' を追加
 自作モジュール:[自作モジュール].py を WorkingDirectory にコピー


経過:
 起動できないスクリプトからコードを減らしていき、import がなければエラーが起きないことを確認。ネットを検索すると、systemd は root で実行するが、モジュールインストール時にインストールユーザーしか使えない設定のためエラーになったらしい
 *.service ファイルの[Service]に 'User=pi' を追加して pip でインストールしたモジュールについては解決。

 自作モジュールの import のエラーは解決せずに残った。起動させるスクリプトに一つ下のディレクトリに配置してあったのだが、同じディレクトリにリンクを張って解決(コマンドラインからは問題なく動いていたのだが...)。

その他:
 日本語の情報が見つけられなかった...

0 件のコメント:

コメントを投稿