次の行に沿って、suを呼び出してコマンドを送信することでプロセスを開始するAndroidアプリケーションを構築しています。
Process su = Runtime.getRuntime().exec( "su" );
DataOutputStream out = new DataOutputStream( su.getOutputStream() );
out.writeChars( "pppd /dev/pts/0" );
out.flush();
サービスを停止してpppdプロセスを強制終了したい場合、現在、pppdへの最初の呼び出しのように実行busybox killall pppd
しています。最初の呼び出しで使用したとしても、su
単に呼び出しが失敗するため、pppdがフォークしてバックグラウンドプロセスを作成できなくなります。 動作しますが、pppdに依存する他のアプリケーションを壊す可能性があります。 su.destroy()
pppd /dev/pts/0 nodetach
killall
pppdプロセスを直接排除できるメスが大いに好きですが、実行ps
、PIDの検索、呼び出しkill
がなければ、適切な解決策はないようです。
su
Androidで開始されたプロセスを強制終了するための合理的にクリーンな方法はありますか?