@reboot cronジョブで「screen」を実行する

@reboot cronジョブで「screen」を実行する

起動時に画面からスクリプトを実行したいです。

これはうまくいきません:

@reboot pi screen -d -m /home/pi/db_update.py

ただし、ユーザー pi でこのコマンドを手動で実行すると、次のように動作します。

screen -d -m /home/pi/db_update.py

私が何を見逃しているのか知っていますか?

ベストアンサー1

ユーザーとして実行し、@reboot pi ...代わりに以下を追加する必要があります。/etc/crontabcrontab -epi

@reboot /usr/bin/screen -d -m /home/pi/db_update.py

screenへのフルパスを使用し(単にそれなしで動作することを確認するために)、/home / piが暗号化されたファイルシステムにないことを確認してください(完了)。このコマンドは、cronデーモンが起動したときやユーザーがログインした後にのみアクセスできるものには依存しません。

ログインして接続するのに十分な時間を許可するために何かを追加するかdb_update.py(実際に実行されていることを確認するためにファイルに書き込む/var/tmp)、time.sleep(600)をPythonプログラムの最後に置くこともできます。


Lubuntu 13.04、Python 2.7.4でテストされており、エントリは次のとおりです。

@reboot screen -d -m /home/anthon/countdown.py

そしてcountdown.py

#!/usr/bin/env python
import time
for x in range(600,0,-1):
    print x
    time.sleep(1)

(そしてchmod 755 countdown.py

おすすめ記事