スクリプトのcron "subprocess.Popen"呼び出しが機能しない場合

スクリプトのcron

以下を使用して別のスクリプトを呼び出すPythonスクリプトがあります。subprocess.Popen

subprocess.Popen("python sample.py", shell=True)

手動で実行するとうまく実行されますが、sample.pycronでスケジュールすると実行されませsample.pyん。助けてください

ベストアンサー1

ジョブがによって実行されているcronか、systemd起動スクリプトがデスクトップで実行されているのと同じランタイム環境で実行されていません。systemdでスクリプトを起動しますroot。変更やその他の環境変数の設定は、ジョブに自動的に伝播されPATHません。たとえば、noなので、GUIプログラムには特別な処理(読み取り)が必要です。~/.bashrccron$DISPLAYman xhost

cron環境変数は、すべてのジョブの読み取りファイルで設定できます。crontabman 5 crontab

echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias各環境の結果を確認してください。

その行はデフォルトで解釈されるため、構文はcommandそれよりも単純なので、環境を設定した後に必要なプログラムを呼び出すスクリプト(実行可能、インストール、開始)を呼び出すことをお勧めします。crontab/bin/sh/bin/bashcommandbash#!/bin/bash

おすすめ記事