[英]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.