【问题标题】:Using apple script to find out and compare process path by PID使用苹果脚本通过PID查找和比较进程路径
【发布时间】:2017-08-21 06:08:12
【问题描述】:

我正在使用 Apple Script 按名称查找进程 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 Script 中做什么来区分哪个 PID 是我想要的? (也许是通过PID获取进程路径?)

谢谢

【问题讨论】:

    标签: macos applescript


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      也可以通过以下方式完成:

      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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-04
        • 1970-01-01
        相关资源
        最近更新 更多