1

java を介して実行される bash スクリプトの生成されたプロセスを強制終了するために、Java で次のコマンドを実行しようとしています。

kill $(pgrep -P $(pgrep -P 5537)) 

コマンドをビルドするためにapache Commons Exec Commandlineを使用していますが、ここでProcessBuilderを使用するのと同じです。だからここに私がこれまで持っているものがあります:

CommandLine cmdLine = new CommandLine("bash");
cmdLine.addArgument("-c");
cmdLine.addArgument("kill $(pgrep -P $(pgrep -P "+pid+"))");

エラーが発生します

bash: $'kill 7940\n7941\n7942\n7943': Command not found.

通常、コマンドから改行を取得しようとしますが、エラーが発生するため、単一のプロセスだけを強制終了することもできません。

bash: kill 7980: Command not found.

一方では変数を使用するためにbashを使用する必要があり、他方ではkillを実行できないため使用できません...

4

1 に答える 1

1

まずkill -9 pidnumber

なぜbash変数が必要なのですか? Javaが変数を格納するための文字列を与えるのはいつですか?

第三に、試してみませんSystem.Runtime.getRuntime().exec()か?

また、タスクを強制終了する権限がありますか? 試しましたsudo kill -9 pidか?

于 2012-10-19T09:03:55.013 に答える