前提・実現したいこと
serviceを使って自動起動プログラムを作成しています。
serviceで対象ディレクトリのシェルスクリプトを実行したいのですが、うまく行きません。
具体的にはpythonプログラムの実行が原因で以下のようなエラーが発生しています。(echoにしたところinactiveになった)
serviceでpythonプログラムを実行したければどのように指定すればいいのでしょうか。
いろいろ探ってみると、同じ階層上のprintのみするpythonプログラムは実行できました。
しかし、sample.pyで読み込んでいるpytzや自作モジュールを読み込もうとするとエラーになりました。
わかる方がいましたら、回答お願いします。
発生している問題・エラーメッセージ
sample.service - sample daemon Loaded: loaded (/etc/systemd/system/sample.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2020-11-12 16:15:43 JST; 12s ago Process: 2848 ExecStart=/home/pi/shellscript/sample.sh (code=exited, status=1/FAILURE) Main PID: 2848 (code=exited, status=2) 11月 12 16:15:43 uname systemd[1]: Started sample daemon. 11月 12 16:15:43 uname systemd[1]: sample.service: Main process exited, code=exited, status=1/FAILURE 11月 12 16:15:43 uname systemd[1]: sample.service: Failed with result 'exit-code'.
該当のソースコード
#!/bin/bash python3 /home/pi/sample.py 2>> log.txt
[Unit] Description = daemon [Service] ExecStart = /home/pi/shellscript/sample.sh Restart = no Type = simple [Install] WantedBy = multi-user.target
試したこと
サービスを使わずにシェルスクリプトを直接実行するとsample.pyはうまく動作します。
python
1# sample.py 実際に使いたいプログラム 2 3from datetime import datetime 4from pytz import timezone 5import time 6import schedule 7import subprocess 8import os 9import log 10 11...
一つ一つ試してみると、エラーになるものエラーにならないものがありました。
python
1# hoge.py 2 3from datetime import datetime #○ 4from pytz import timezone #× 5import time #○ 6import schedule #× 7import subprocess #○ 8import os #○ 9import log #× 自作モジュール 10 11print('hoge') #これのみだとうまくいく
pytzを読み込もうとしたときのlog.txt
直接python3 hoge.pyを実行するとうまく行きます。
Traceback (most recent call last): File "hoge.py", line 3, in <module> from pytz import timezone ModuleNotFoundError: No module named 'pytz' Traceback (most recent call last): File "hoge.py", line 3, in <module> from pytz import timezone ModuleNotFoundError: No module named 'pytz'
$ /home/pi/berryconda3/bin/python3 -mpip list Package Version ------------------- --------- ... pytz 2020.4 ...
補足情報(FW/ツールのバージョンなど)
OS:Raspberry pi OS
あなたの回答
tips
プレビュー