我该如何获取进程ID?我需要这个ID来结束该进程。我知道该进程的名称。
谢谢!
let pid: Int32 = ProcessInfo.processInfo.processIdentifier
print("pid: \(pid)")
首先,进程名称并不能唯一地标识进程。可能会有许多具有相同名称的进程,或者进程甚至可以在您查看它们时更改它们的名称(即,PostgreSQL服务器正在分叉并更改argv[0],以便您可以看到谁是主进程,谁是工作进程等)。但无论如何,您都需要一个API来列出进程并获取它们的详细信息 - procps可以为您完成。
更新:哦,我第一次没有注意到OSX。对于OS X,您必须使用NetBSD API(别问为什么)。请参阅KVM(内核数据访问库)文档。API不同,但思路仍然相同。
NSRunningApplication
。NSArray *runningApplications = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.bundleIdentifier"];
if (runningApplications.count == 1) {
NSRunningApplication *app = runningApplications[0];
pid = [app processIdentifier];
}
-[NSWorkspace launchedApplications]
在10.6及以上版本中已被弃用。
getpid
很容易获取 PID。 - Alex