pythonのpyautoguiのcronが動かない(ラズベリーパイ)
cronがうまくいかない原因は無限にあって、大先輩たちがみんな教えてくれるのですが、一応自分のケースは日本語のサイトが見当たらなかったため記載しておきます。
※私はラズベリーパイでやってますが、特にそこは依存しない問題みたいです。
■状況切り分け
pythonは手動実行はうまくいくのに、cronは反応しない。
catコマンドとかのcronは動く(cronは生きている)。
crontabのパーミッションとかも触ったことない(644のroot)
pyenvとかじゃない、限りなくピュアな状態?のpython
■原因
はい!それきっと環境変数不足です!
いや、cronにはパスを通さないといけないのもみなさんわかってますよね…
■間違った対策
crontabのファイルの最初に
「echo $PATH」で取得したパスを全部記載してみる。
■正しい対策
どの環境変数でこけてるか、標準エラー出力で調べてみてください。
私の場合はKeyError: 'DISPLAY'という記載があり、DISPLAYの値が読めなかったみたいです。
printenvでしらべたところ「DISPLAY=:0.0」とあったため、これをcrontabファイルの上部に記載したところやっと動きました…
私はこの程度ですみましたが、cronはほかにも絶対パスでかけーとか、文字コード気をつけろーとか大変なんだなと知りました。