2016-03-21 41 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