2009-08-26 125 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啓動的進程沒有放棄權限,注意事項通常都無關緊要,但是一個隱含的問題是,如果任何子進程已將自己置於新進程組中,則此方法不起作用。