Mac OS X:从Cocoa应用程序中杀死退出整个流程树的最快方法

Mac OS X:从Cocoa应用程序中杀死退出整个流程树的最快方法,第1张

概述我知道有很多问题和答案,但我正在寻找一个有效而强大的解决方案.我需要在 Cocoa应用程序杀死进程及其所有子进程.我得到了进程ID,我要编写的代码就是执行kill命令 kill -- -<parent PID> 从我的应用程序… …但这对我来说似乎非常hacky和残酷.是不是有更好的解决方案?除非我自己构建流程树表示,否则Carbon的KillProcess()及其流程管理器朋友似乎没有多大帮助 我知道有很多问题和答案,但我正在寻找一个有效而强大的解决方案.我需要在 Cocoa应用程序中杀死进程及其所有子进程.我得到了进程ID,我要编写的代码就是执行kill命令

kill -- -<parent PID>

从我的应用程序… …但这对我来说似乎非常Hacky和残酷.是不是有更好的解决方案?除非我自己构建流程树表示,否则Carbon的KillProcess()及其流程管理器朋友似乎没有多大帮助.我错过了什么吗?

我还有一些代码可以根据PID发送Quit Apple Event.能够将其发送到父进程定义的树中的每个进程,自下而上更好.但那只是一件好事.第一个问题的答案得到了“重点”.

解决方法 您可以使用killpg来终止进程及其组中的所有内容:

#include <signal.h>#include <unistd.h>/* ... */killpg(getpgID(pID),SIGTERM);

当然,应该进行适当的错误检查,但是你应该得到要点.有关详细信息,请参见手册页kill(2)和killpg(2).

总结

以上是内存溢出为你收集整理的Mac OS X:从Cocoa应用程序中杀死/退出整个流程树的最快方法全部内容,希望文章能够帮你解决Mac OS X:从Cocoa应用程序中杀死/退出整个流程树的最快方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存