长话短说,我正在尝试用 Python 编写一个程序来连续运行该命令kill [PID of iTunes
,但经过一些测试,发现ps aux | grep iTunes | egrep -v "grep|Helper" | awk '{print $2}'
iTunes 的 PID 每次都会发生变化,我似乎找不到其中的规律。它有规律吗?或者有办法让它不增加吗?
答案1
在任何会话或系统上,只有一个进程每次都具有相同的 PID。即init
始终具有 PID 1 的进程。除此之外,没有其他模式。
如果您使用 Homebrew 命令,brew install proctools
它将下载、构建和安装pgrep
。
然后你可以使用pgrep -f <process name> | awk '{print "kill -9 " $1}'
我相信另一个选择是使用pkill
进程名称。在这种情况下,我认为您不必知道进程 ID,只需知道进程名称。pkill
如果您执行上面列出的 Homebrew 命令,也会安装。
如果你不想安装任何东西,试着运行这个ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}' | sh
。看看它在 shell 中打印出什么,看看它是否会终止正确的进程。