Я пытаюсь выполнить следующую команду из Java (работает должным образом в коробке Unix) -Выполнение команды Unix с Java от обратных кавычек
kill -9 `ps -ef | grep -i myScript.sh | grep bash | awk '{print $2}'`
Но при выполнении с помощью Java, я получаю следующее error-
/usr/bin/kill[8]: `ps: Arguments must be %job or process ids
Exit : 1
Код:
String command = "kill -9 `ps -ef | grep -i myScript.sh | grep bash | awk '{print $2}'`";
Process process=Runtime.getRuntime().exec(command);
InputStream stderr = process.getErrorStream();
InputStreamReader inputStream = new InputStreamReader(stderr);
BufferedReader reader = new BufferedReader(inputStream);
String error = null;
while((error = reader.readLine()) != null) {
System.out.println(error);
}
exitVal = process.waitFor();
System.out.println("Exit : "+ exitVal);
п.с. - Напоминаем, что команда отлично работает под оболочкой.
backtick magic выполняется оболочкой, и здесь вы запускаете команду kill без оболочки, поэтому обратные ссылки не оцениваются. – fvu
Вы можете разделить его на части 'ps' и' kill'. –