[英]Executing Linux Command in Java
我试图在Java中执行以下命令,以终止通过java执行的bash脚本的生成过程:
kill $(pgrep -P $(pgrep -P 5537))
我正在使用apache Commons Exec命令行来构建命令,但是与在这里使用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.
通常我现在会尝试从Command中删除换行符,但是它也无法杀死一个进程,因为这样我会得到以下错误:
bash: kill 7980: Command not found.
一方面我需要使用bash来使用变量,另一方面我不能使用它,因为kill不能用它执行。
首先kill -9 pidnumber
为什么需要bash变量? java何时给您字符串来存储变量?
第三,为什么不尝试System.Runtime.getRuntime().exec()
呢?
您还具有杀死该任务的权限吗? 尝试过sudo kill -9 pid
吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.