簡體   English   中英

在Java中執行Linux命令

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM