web-dev-qa-db-ja.com

新しいサービスの作成時のsystemd "status = 203 / EXEC"エラー

Pythonスクリプト用の新しいサービスを作成しました。スタンドアロンで実行すると機能しますが、systemdで実行すると以下のエラーが発生します。

Oct 02 12:17:09 raspberrypi systemd[1]: Started Read pressure And Post to mqtt.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Main process exited, code=exited, status=203/EXEC
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Unit entered failed state.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Failed with result 'exit-code'.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Service hold-off time over, scheduling restart.
Oct 02 12:17:09 raspberrypi systemd[1]: Stopped Read pressure And Post to mqtt.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Start request repeated too quickly.
Oct 02 12:17:09 raspberrypi systemd[1]: Failed to start Read pressure And Post to mqtt.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Unit entered failed state.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Failed with result 'exit-code'.

サービスは「etc/systemd/system/ReadPressure.serviceに作成されました。実行権限があります。

サービスは次のようになります。

[Unit]
Description=ReadPressure

[Service]
ExecStart=/bin/bash -c 'python3 -u /home/pi/ReadPressure/ReadPressure2AndPostToMqtt.py'
WorkingDirectory=/home/pi/ReadPressure/
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

エラーが発生する理由は何ですか?オペレーティングシステムはRaspbianです。

ありがとう

5
resolver101

試す

pi@raspberrypi:~ $ systemctl status ReadPressure.service

@Ingoの言い換え 起動に失敗したpython起動時にThonnyのプログラム

エラーメッセージ(コード=終了、ステータス= 203/EXEC)は、スクリプト自体またはそのインタープリターを実行できないときによく見られます。

次の理由が考えられます。

  • スクリプトへの誤ったパス(例:/home/py/ReadPressure2AndPostToMqtt.py)

  • スクリプトは実行できません

  • シバンなし(最初の行)

  • シバンの間違ったパス(例:/ bin/python3)

  • スクリプトの内部ファイルにアクセス許可がない可能性があります。

7

コマンドを引用する必要がある場合があります。例:

ExecStart="/bin/bash -c 'python3 bla blah'"
0
Anne Bennett