当前位置:  开发笔记 > IOS > 正文

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

如何解决《MacOSX:从Cocoa应用程序中杀死/退出整个流程树的最快方法》经验,为你挑选了1个好方法。

我知道有很多问题和答案,但我正在寻找一个有效而强大的解决方案.我需要在Cocoa应用程序中杀死一个进程及其所有子进程.我得到了进程ID,我要编写的代码就是执行kill命令

kill -- -

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

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



1> Jason Coco..:

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

#include 
#include 

/* ... */

killpg(getpgid(pid), SIGTERM);

当然,应该进行适当的错误检查,但是你应该得到要点.请参阅手册页kill(2)killpg(2)获取更多信息.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有