应用程序的 PID 为何会改变/是否存在规律?

应用程序的 PID 为何会改变/是否存在规律?

长话短说,我正在尝试用 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 中打印出什么,看看它是否会终止正确的进程。

相关内容