2017-04-26 94 views
0

我有一個具有While True的python腳本:在這個腳本中,我希望在運行Jessie的樹莓派上運行啓動腳本。從bash啓動腳本調用的Python腳本在運行20分鐘後停止,

到目前爲止,我有在/etc/init.d啓動bash腳本名爲startup.sh包含

須藤python3 /home/pi/Desktop/Scr​​ipts/bluez3.py &

當樹莓派啓動,腳本確實運行,但20分鐘後腳本似乎停止。我登錄了我的腳本,時間戳完全停留了20分鐘。

我做了一些閱讀,我認爲最好的選擇是在樹莓派上創建python腳本作爲服務。但是,我一直無法找到一個關於如何做到這一點的體面教程(以及我缺乏Python知識)。

我的問題是,是否有另一種方法來解決我的問題或沒有人知道如何使python腳本成爲服務的一個很好的教程。

謝謝!

+1

嗯定製 - 以及爲什麼如果我們看到我們是否可以弄清楚什麼是殺戮呢?你能把這個腳本的內容放在這裏嗎?即使你使用它的服務,你最終也會得到相同的結果 - 你只會讓systemd告訴你它已經停止 –

+0

你是否曾嘗試在終端的前臺運行它,並目睹它是否在20分鐘內失敗並帶有一些回溯作爲stderr? – odradek

回答

1

給出您的腳本的名稱,我猜它與一些藍牙的東西有關。很可能20分鐘後,無論您在腳本中檢查/需要什麼,都無法訪問,並引發異常或類似情況。就像一個資源被鎖定,或者一個bt設備被斷開或者一個模塊被卸載或者不可用或者[在這裏插入邊緣情況原因] ...

那麼說,在創建systemd服務之間,你可以先用supervisorctl只是一個apt install supervisor了。

那麼,如果你真的要啓動它作爲一個服務,你可以找到很多例子中/lib/systemd/system/*.service,如下所示:

[Unit] 
Description=Your service 
Wants= 
After=bluetooth.target # I guess you need bluetooth initialised first 

[Service] 
ExecStart=/usr/bin/python3 /home/pi/Desktop/Scripts/bluez3.py 
ExecReload=/bin/kill -HUP $MAINPID 
KillMode=process 
Restart=always 

[Install] 
WantedBy=multi-user.target 

這是我從sshd.service文件