使用JPS的Bash Kill Java进程

使用JPS的Bash Kill Java进程,bash,Bash,我试图创建一个简单的bash脚本,它将杀死一个特定的java进程。JPS似乎是最合适的候选人,所以我很快写了以下内容: jps | grep my_process_name | awk '{print $1}' 在终端中,这非常有效,我得到了java进程的PID,my_process\u name。但是,当我将其放入这样的快速脚本中时: stop_app() { echo 'Stopping running service...' PID=jps | grep halo |

我试图创建一个简单的bash脚本,它将杀死一个特定的java进程。JPS似乎是最合适的候选人,所以我很快写了以下内容:

jps | grep my_process_name | awk '{print $1}' 
在终端中,这非常有效,我得到了java进程的
PID
my_process\u name
。但是,当我将其放入这样的快速脚本中时:

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

我的
PID
似乎是空的!有什么想法吗?

PID=“$(jps | grep halo | awk'{print$1}”)”

使用命令替换将命令的输出存储到变量:
PID=$(jps | grep halo | awk'{print$1}')
注意这就足够了:
PID=$(jps | awk'/halo/{print$1}')
。不需要在两者之间使用
grep