2016-03-21 124 views
1

我正在後臺運行一個名爲mystepper.py的腳本(/home/pi/mystepper.py);它爲我的RPi Camara移動了兩個步進電機。我想了解最簡單的方法,如果可能的話按名稱殺死mystepper.py腳本。然後,我打算在/home/pi/.bashrc中創建一個別名,以便我可以使用iFreeRDP應用程序使用我的iPhone控制相機。 iFreeRDP應用程序和類似的應用程序有一個損壞的鍵盤,使得週期和空格鍵不起作用,因此需要使用快捷方式別名來消除對空格和句點的需求。最簡單的方法來殺死在後臺運行的Python腳本

殺死該腳本後,我將使用/home/pi/moveit.py進行步進電機位置調整,然後重新啓動mystepper.py。

所以如果有人能告訴我最簡單的殺死劇本的方法,那會很棒!

回答

2

pkill可以使用-f標誌通過匹配其命令行來終止進程。請參閱manpage

$ pkill -f mystepper.py 

應該這樣做。

更新以包括在下面

註釋爲了縮短成一個單一的命令例如這標誌着建議:killit,以下行應該放到~/.bashrc

alias killit='sudo pkill -f /home/pi/mystepper.py' 

注:的上面的作品沒有在Raspberry Pi上進行密碼驗證,因爲默認的Raspbian /etc/suoders文件在使用sudo作爲pi時會禁用密碼驗證用戶。

即,/etc/suoders

PI ALL =(ALL)NOPASSWD:ALL

參見manpage的語法。

作爲不同的用戶或者在不適用的情況下,通過在/etc/sudoers最末尾的visudo命令添加以下內容應該可以工作。將pi替換爲調用該腳本的正確用戶(替換爲ALL應允許所有用戶以root用戶權限運行myst​​epper.py - 未測試過)。

PI ALL =(ALL)NOPASSWD:在/ usr/bin中/ Python的/home/pi/mystepper.py

+1

是的,偉大工程!我會修改你的答案只是一個接觸。我的工作方式是:alias killit ='sudo pkill -f /home/pi/mystepper.py額外的一點幫助像我這樣的新手,但只是給你的專家給的。現在我只需輸入killit即可完成工作。謝謝! – Mark

+0

沒有probs,已經按照你的建議更新了。還包括一個理由,說明爲什麼它可以在沒有Raspbian密碼挑戰的情況下使用'sudo',以及如何在其他系統上實現。 –

+0

謝謝。哦,我剛剛注意到,這個別名命令需要一個封閉的引號。我想我錯過了最後一次回覆。應該看起來像'最後,對吧? killit ='sudo pkill -f /home/pi/mystepper.py' – Mark