【问题标题】:Detect when other process is shutdown OSX检测其他进程何时关闭 OSX
【发布时间】:2010-03-07 02:10:28
【问题描述】:

我需要一种方法来从 Cocoa 应用程序中确定给定的进程名称是否正在运行。我的一个想法是使用 NSTask 并使用 ps aux | 轮询。 grep 进程名称。有没有更好的解决方案?

【问题讨论】:

    标签: macos cocoa process process-management


    【解决方案1】:

    您应该能够轻松地修改此示例代码以按名称查找进程:

    http://developer.apple.com/mac/library/samplecode/PIDFromBSDProcessName/listing1.html

    【讨论】:

    • 谢谢!!我会检查一下。知道必须有更好的方法:)
    【解决方案2】:

    如果您使用的是 Snow Leopard,可以查看 NSRunningApplication 类,尤其是 + runningApplicationWithProcessIdentifier: 方法

    【讨论】:

      【解决方案3】:

      GetBSDProcessList() function我已经用过好几次了。

      【讨论】:

        【解决方案4】:

        您可以使用Process Manager API 循环使用GetNextProcess 遍历所有正在运行的进程,并使用CopyProcessName 获取进程的名称。请注意,这种技术并不能解决观察进程何时启动的问题。

        【讨论】:

          【解决方案5】:

          如果您需要检查某个进程是否正在运行一段时间(而不是瞬间),请查看Tech Note 2050: Observing Process Lifetimes Without Polling。技术说明中的一些技术有limitations:它们只允许您监视当前登录会话中的 GUI 进程。但是,kqueues 可能正是您要寻找的:它们让您可以监控任何类型的进程。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-07-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-27
            相关资源
            最近更新 更多