2015-12-28 4 views
-1

Я пытаюсь создать простой скрипт bash, который убьет конкретный Java-процесс. JPS, как представляется, наиболее подходящим кандидатом, так что я быстро написал:Bash Убить Java-процесс с использованием JPS

jps | grep my_process_name | awk '{print $1}' 

В терминале это прекрасно работает, и я получаю обратно PID процесса Java my_process_name. Однако, когда я положил, что в быстрый сценарий как это:

stop_app() { 
    echo 'Stopping running service...' 
    PID=jps | grep halo | awk '{print $1}' 
    kill -9 ${PID} 
} 

Мои PID кажется пустым! Есть идеи?

+0

Использовать подстановку команд для сохранения вывода команды переменной: 'PID = $ (jps | grep halo | awk '{print $ 1}')' – user000001

+0

Обратите внимание, что это достаточно: 'PID = $ (jps | awk '/halo/{print $ 1} ') '. Не нужно использовать 'grep' между ними. – fedorqui

ответ

Смежные вопросы