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を実行できないため使用できません...