AuthorizeExecuteWithPrivilegesを使用してシェルスクリプトを起動した場合、スクリプトを生成する最も簡単な方法と、それが生成したプロセスをすべて終了させることができます。AuthorizationExecuteWithPrivilegesで起動した後にプロセスを終了する
おかげ
AuthorizeExecuteWithPrivilegesを使用してシェルスクリプトを起動した場合、スクリプトを生成する最も簡単な方法と、それが生成したプロセスをすべて終了させることができます。AuthorizationExecuteWithPrivilegesで起動した後にプロセスを終了する
おかげ
これは、rootとして実行しているので、あなたは、通常のユーザー・プロセスからそれを殺すことはできません。あなた自身で終了するにはうまくそれを求めなければならないでしょう。
Appleには、stdoutを使用してPIDを呼び出し側に戻すsample codeがあります。
最後の引数であるFILE **communicationPipe
で、AuthorizationExecuteWithPrivileges()
が参照して返す通信パイプを使用して、子プロセスにメッセージを送信し、子プロセスと子孫を出すように要求します。その後、自分自身とすべての子孫をkill(0, SIGINT)
で殺すか、もっと徹底的な対策が必要な場合はSIGKILL
で殺すことができます。
メッセージは、子がファイルを閉じるのを待っている間にファイルを閉じるのと同じくらい簡単です。その時点で、あなたはそれに話し終わったことを知っています。
実際にこのメッセージを受け取る子孫については、マンページを参照してください。 AEWPで起動したプロセスが権限を落としていない限り、警告はほとんど問題ではありませんが、暗黙の問題の1つは、子プロセスが新しいプロセスグループに参加してもこのアプローチはうまくいかないということです。
ありがとうございます。私はそれをうまく終了するにはどうしたらいいですか?私はそれを殺すために別の "AuthorizationExecuteWithPrivileges"コマンドをいつも使うことができると思いますが、ユーザーがプロセスを閉じるために管理パスを入力する必要が非常に不便です... – indragie
はい、そうです。 IPCの任意の形式を使用します。 –
私の知らないことは申し訳ありませんが、IPCとは何ですか?私はそれを研究しましたが、それが意味することができる多くの異なるものがあります。ありがとう – indragie