Raspberry Piのcronでsudo(または起動)Pythonスクリプトを実行しますか?

Raspberry Piのcronでsudo(または起動)Pythonスクリプトを実行しますか?

私はアートプロジェクトを手伝っています(http://stargateeggbeater.com/興味のある方のために)Raspberry Piに基づいて構築されました。 RPiはspidev次のデバイスを使用して、GPIOを介してアドレス指定可能なLEDストリップを制御します。指示する。ディスプレイを起動するには、次を実行します。

sudo python lightpaint-FF.py

私たちはこのプロジェクトをパーティーやフェスティバルに披露する予定なので、リリース時に自動的に実行されるのが理想的です。 (当社のRPiにはモニターが接続されていないため、SSHを使用して別のラップトップにログインし、コードを実行してnohupから再度ログアウトする必要があります。)

この問題を解決するための最初の試みは、単純なbashスクリプトを書くことでした。

#!/bin/bash

if [ ! "$(pidof python)" ] 
 then
   sudo python /home/pi/lightpaint-FF.py
fi

/etc/crontab含めるように修正されました。

* * * * * root /home/pi/EggbeaterCronJob

必要な動作は、毎分実行中のPythonインスタンスがあることを確認し、そうでない場合はPythonスクリプトを起動することです。端末から呼び出すと、スクリプトが正しく機能していることを確認しました。

pidof python # returns nothing
sudo /home/pi/EggbeaterCronJob
pidof python # returns new process ID

しかし、私のアップデートの後、crontabPythonプロセスIDはそれ自体は表示されません。確実にするために、構成は愚かなcrontab間違いを犯していないことを確認しました。

* * * * * root touch test-freaking-cron

これにより、cron実際に私の編集内容に対応していることが確認されました。

ベストアンサー1

rootとして実行されるので、必要ないものを削除し、sudosudoはデフォルトでttyなしでは実行されません。

visudorequirettyを実行してコメントアウトすることで、sudoにttyなしで実行するように指示できます。

#Default requiretty

これにはセキュリティ上の欠陥があります。ここ

おすすめ記事