コマンドラインで完全に実行されるPythonスクリプトがあり、CRONで実行しようとすると奇妙なことが起こります。
このスクリプトはapkスクリプトファイルを生成して実行します。
/usr/src/scripts/plots/core_temp_data/weeklyplots
apkスクリプトファイルはコマンドラインから実行すると保存されますが、/home/pi
CRONで実行すると保存されます。
ログファイルにCRONエラーを記録してみましたが、/home/pi
ディレクトリにも記録されています!
スクリプトは機能しますが、結果ファイルを間違った場所に保存します。では、正しいパスをどのように指定しますか?
パスを指定する方法を探しましたが、とても混乱しました。
apkスクリプトを生成する部分はfout = open("live_gnu_command.gpl", "w")
次のD_byesはこれを助けます。fout = open("/usr/src/scripts/plots/core_temp_data/weeklyplotslive_gnu_command.gpl", "w")
答え1
デフォルトでは、cron
ジョブを所有しているユーザーのホームディレクトリにあるすべてのジョブが実行されます。出力ファイルを作成するときは、Pythonスクリプトが絶対パスを使用していることを確認してください。それ以外の場合は、現在のユーザーのホームディレクトリに配置されます。