2009-08-26 98 views

回答

3

它以root身份运行,所以你不能从一个普通用户进程杀死它。你将不得不好好问自己退出。

+0

谢谢,我会如何要求它退出很好?我想我总是可以使用另一个“AuthorizationExecuteWithPrivileges”命令来终止它,但是如果用户必须输入管理员密码才能关闭进程,那么这将非常不方便。 – indragie

+0

是的。你可以使用任何形式的IPC。 –

+0

对不起,我的无知是什么,IPC是什么?我研究过它,但它可能意味着很多不同的东西。谢谢 – indragie

1

Apple有sample code,它使用stdout将PID传回给调用者。

1

使用通讯管道将AuthorizationExecuteWithPrivileges()回报在其最后一个参数,FILE **communicationPipe,参考消息发送到子进程,要求其采取自身及其后代了。然后它可以使用kill(0, SIGINT)杀死自己及其所有后代,或者,如果需要更严厉的措施,SIGKILL

您使用的消息可能非常简单,只需在儿童等待文件关闭时关闭文件;在这一点上,它知道你已经完成了对它的谈话,现在是时候让自己了。

有大约将实际收到此消息,对此见手册页后裔一些注意事项。只要通过AEWP启动的进程没有放弃权限,注意事项通常都无关紧要,但是一个隐含的问题是,如果任何子进程已将自己置于新进程组中,则此方法不起作用。