使用苹果脚本通过PID找出和比较过程路径



我正在使用Apple脚本按名称查找进程PID,例如...

set appName to "KKK"
tell application "System Events"
set processPID to (unix id of processes whose name is appName)
end tell

使用此脚本,我可以了解名称为"KKK"的所有进程的 PID。

但我这里有一个问题。

例如,有三个"KKK"进程,"/FolderA/KKK","FolderB/KKK","FolderC/KKK">

我想杀死"/FolderA/KKK"的进程,所以我需要知道哪个PID属于"/FolderA/KKK"。

运行脚本后,我可以得到三个PID,我实际上可以在Apple脚本中做什么来区分哪个PID是我想要的? (也许通过PID获取过程路径?

谢谢

这不是对应用程序path进行name检查,而是一个检查Messages.app的示例。

set appPath to "/Applications/Messages.app"
tell application "System Events"
set processPID to (unix id of 1st process whose POSIX path of application file is appPath)
end tell

也可以使用以下方法完成:

do shell script "kill -9 $(ps -x | awk '/[F]olderA\/KKK/{print $1}')"

您还可以在末尾添加; exit 0,以便在应用程序未运行且无需检查或捕获时查看错误:

do shell script "kill -9 $(ps -x | awk '/[F]olderA\/KKK/{print $1}'); exit 0"

最新更新