使用JPS的Bash Kill Java进程
我试图创建一个简单的bash脚本,它将杀死一个特定的java进程。JPS似乎是最合适的候选人,所以我很快写了以下内容:使用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 |
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
。