読者です 読者をやめる 読者になる 読者になる

プロセスをkillする機能について

AppStoreでもコメントいただいてますが、「稼働中のアプリケーション一覧」を追加する時から、プロセスをkillする機能を入れることは考えていました。
私が知りうる限りでは、killpg()やkill()といった関数を使うことで、実現できます。
まず、手始めに、Mac上のiPhoneシミュレータで、アプリケーションを実行し、MobileSafariをkillpg()関数でkillしてみたところ、うまく行きました。
次に、同じことををiPhoneの実機でやってみたところ、”Operation not permitted”というエラーが出て、失敗しました。
一般的には、スーパユーザ以外で、自分と違うユーザが起動しているプロセスには、シグナルを送ることはできないという制限があります。それに該当するのかと思い、自分のアプリケーションとMobileSafariのプロセスのユーザIDを調べてみたところ、いずれも、501で同じでした。同じユーザIDで起動したプロセスに対してであっても、シグナルを送ることが許可されていないように見えます。
(たしかに、簡単に他のプロセスをkillすることができるというのは、危険かもしれませんが。。。)
ということで、ご期待に添えず申し訳ないですが、とりあえず、このシンプルな方法でやることは、諦めました。
今後、もしも何らかのやり方がわかったら、また考えようと思います。