2014-07-24 98 views
1

有一個問題得到以下工作。我如下(linux)bash腳本在延遲後運行腳本

@reboot /home/pi/bash_script 

執行包含以下

#!/bin/bash 

/bin/sleep 60 && /usr/bin/python /home/pi/foo.py 

我也做在chmod X到文件,以使其可執行bash腳本在重新啓動添加cron作業。

但它似乎並沒有工作。任何人都可以識別我的腳本中的任何錯誤,或者建議我可能採取的故障排除步驟

這是錯誤日誌中我得到

Traceback (most recent call last): 
    File "/home/pi/foo.py", line 70, in <module> 
    main() 
    File "/home/pi/foo.py", line 65, in main 
    root = tk.Tk() 
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__ 
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sy$ 
_tkinter.TclError: no display name and no $DISPLAY environment variable 
+0

難道真實失敗的bash腳本或Python的?運行腳本時是否存在'/ home/pi/foo.py'? (是否掛載了'/ home'?如果'/ home'是根文件系統的一部分,這可能是不相關的。)添加'set -x; exec/2/tmp/pi-bash。$$'在'/ bin/sleep'行之前;運行;尋找一個'/ tmp/pi-bash.NNNN'文件(其中N是數字),然後看看它是什麼,如果有的話。 Python腳本是否依賴於環境變量的未設置或設置不同的環境變量?您可以將'env>&2'添加到跟蹤代碼中以吐出環境。 –

+0

_syslog_中報告的任何內容? –

+0

謝謝你會嘗試以上。直接從LXTerminal運行bash腳本,即我的Python腳本運行並創建gui。 –

回答

0

嘗試在你的腳本有這個代替。

#!/bin/bash 
exec bash -l -c '/bin/sleep 60 && /usr/bin/python /home/pi/foo.py' 

或者作爲crontab命令:

/bin/bash -l -c '/bin/sleep 60 && /usr/bin/python /home/pi/foo.py' 
+0

謝謝,會試試。如果我使用#!/ bin/bash或#!/ bin/sh,這會影響嗎?還編輯cron作業時,shoudl我使用sudo? –

+0

@eco_bach如果需要用戶'pi'可能。 – konsolebox

+0

仍然沒有雪茄,嘗試了兩種選擇......我認爲我的下一步我應該做一個測試,以確保我的cron作業在重新啓動時正確執行 –