私はアートプロジェクトを手伝っています(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
しかし、私のアップデートの後、crontab
PythonプロセスIDはそれ自体は表示されません。確実にするために、構成は愚かなcrontab
間違いを犯していないことを確認しました。
* * * * * root touch test-freaking-cron
これにより、cron
実際に私の編集内容に対応していることが確認されました。
ベストアンサー1
rootとして実行されるので、必要ないものを削除し、sudo
sudoはデフォルトでttyなしでは実行されません。
visudo
requirettyを実行してコメントアウトすることで、sudoにttyなしで実行するように指示できます。
#Default requiretty
これにはセキュリティ上の欠陥があります。ここ