检测其他进程何时关闭OSX

问题描述 投票:2回答:5

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

macos cocoa process process-management
5个回答
1
投票

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

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


1
投票

如果你在雪豹上,你可以看看NSRunningApplication类,特别是+ runningApplicationWithProcessIdentifier:方法


0
投票

我几次成功地使用了GetBSDProcessList() function


0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.