2017-05-04 80 views
1

當我嘗試在啓動Raspberry Pi時通過將命令添加到/ etc/profile來執行它時,爲什麼我的Python腳本在後臺運行兩次?當我嘗試通過將命令添加到/ etc/profile啓動我的Raspberry Pi來執行它時,爲什麼我的Python腳本在後臺運行兩次?

我有一個寫在文件/ etc/profile文件末尾的命令,用於在我的Raspberry Pi啓動時運行的Python腳本,「sudo python /path/filename.py &」,由於某種原因它運行每次兩次。當我將該行註釋掉並從命令行手動執行它時,它將正常運行。爲什麼會發生這種情況,我能做些什麼來防止這種情況發生?

我知道它在背景中運行兩次,因爲在我的代碼中,我有一個蜂鳴器在有時會發出兩次蜂鳴聲,而在其他蜂鳴器發出三次蜂鳴聲,而不是發出2次和6次蜂鳴聲,而不是3次蜂鳴聲。而且代碼最終會自相矛盾,顯然是因爲每個腳本運行都試圖在同一時間做其他事情。

在此先感謝。

+0

可能會更好的覆盆子pi堆交換? –

+0

您確定要讓腳本開始使用/ etc/profile嗎?無論如何,請嘗試通過創建日誌文件進行調試。我可以想出很多原因,爲什麼你的蜂鳴器不正常,並不是所有的腳本都運行了兩次。 –

+0

可能應該在http://raspberrypi.stackexchange.com/ – lit

回答

0

您是否啓用了VNC?我認爲這是問題。這是給我的。

看到這個相關討論:

https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=59285

所以,你可以禁用VNC,做水平丹尼建議的運行,創建一個新用戶(以使用VNC的一個不同),或開始做這種你的腳本中的東西:

if [ x"$ALREADY_DONE" == x"" ]; then 
    export ALREADY_DONE=yes 
    foobar 
fi 
+1

我沒有啓用VNC。我解決這個問題的方式是在其他地方啓動我的啓動腳本,因爲許多人建議不要使用/ etc/profile來執行此操作。我使用的是「crontab -e」,而是寫了「@reboot sudo python /filelocation/filename.py」,它很好用。感謝您的輸入! –

相關問題