在后台杀死 Python 脚本 运行 的最简单方法

Least Complex Method To Kill Python Script Running in The Background

我是运行后台一个叫mystepper.py的脚本(/home/pi/mystepper.py);它为我的 RPi Camara 移动了两个步进电机。如果可能的话,我想了解按名称终止 mystepper.py 脚本的最简单方法。然后我计划在 /home/pi/.bashrc 中创建一个别名,这样我就可以使用我的 iPhone 和 iFreeRDP 应用程序来控制相机。 iFreeRDP 应用程序和类似应用程序的键盘损坏,因此句点和 space 栏不起作用,因此需要快捷方式别名来消除对 space 和句点的需要。

杀死该脚本后,我将使用 /home/pi/moveit.py 进行步进电机位置调整,然后重新启动 mystepper.py。

所以,如果有人能告诉我最简单的杀死脚本的方法,那就太好了!

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 权限 运行 mystepper.py - 尚未对此进行测试)。

pi ALL=(ALL) NOPASSWD: /usr/bin/python /home/pi/mystepper.py