微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以编程方式快速终止进程

如何解决以编程方式快速终止进程

我试图找到一种方法来识别和终止 Mac 应用程序中的特定进程。是否有一个内置类具有可以返回正在运行的进程列表的函数?有一种使用 Process() 运行终端命令并执行 /usr/bin/killall 命令来终止进程的方法,但我需要以编程方式执行此操作,因为使用应用程序运行终端命令不是一个好习惯。例如,删除文件也可以通过使用 Process() 运行终端命令来完成,而更好的方法是使用 FileManager.default.remomveItem()

解决方法

如果您要查找应用程序(而不是进程),请参阅NSWorkspace.shared.runningApplications。您可以对这些元素调用 terminate()forceTerminate()

如果你想要一个所有 BSD 进程的列表(例如你会从对 ps 的调用中得到什么),那就是用 sysctl 完成的(问答中的代码是 C 的;你' d 必须将它包装到 Swift,或重写它)。我不相信有任何可可包装。要终止进程,一旦获得其 PID,请使用 signal,这是 kill Unix 命令使用的。通常你想发送 SIGTERM,这是一个正常的关闭。要强制终止进程,请发送 SIGKILL。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。