我使用启动 omxplayer 的 Python 代码。它会播放歌曲,有时还会在歌曲播放期间播放广告。在这种情况下,两名球员跑。当 omxplayer 超时时,问题就来了。超时后我无法关闭它,所以到目前为止我已经使用了
os.system("killall -9 omxplayer.bin")
当只播放一首歌时没问题,但是当广告在一首歌中结束并且 omxplayer 超时(不知道为什么,但超时经常发生)这个命令会杀死两个 omxplayer。因此,如果我可以获得进程的 PID (omxplayer.bin) 并将其存储在 python 中的一个变量中并使用它来终止进程,那就太好了。但我很感激任何可以返回给定进程的 PID 的解决方案,而不是从 python 代码中将其杀死。到目前为止,我尝试了很多东西。任何人都可以帮助我吗?
最佳答案
一个可能的解决方案,正如我评论的那样:
import os
import signal
from subprocess import check_output
def get_pid(name):
return check_output(["pidof", name])
def main():
os.kill(get_pid(whatever_you_search), signal.SIGTERM) #or signal.SIGKILL
if __name__ == "__main__":
main()
关于python - 获取进程的 PID 号,然后用 Python 杀死它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37344987/