我想通过shell脚本杀死特定的java进程。
我知道kill -9 $(pidof java)
会杀死它,但它也会杀死所有其他java进程。我知道我想要杀死的java进程是最后一个启动的进程。
因此,如果我使用pidof java
,我将检索一组PID,如何将其分配给列表(或类似的)并获取它的最后一个元素?
由于
答案 0 :(得分:2)
我是Shell脚本的新手,但这是我的解决方案:
kill -9 `ps aux | grep [j]ava | awk '{ print $2 }' | sort -nr | head -n 1`
ps aux
打印当前进程grep [j]ava
查找内部包含“java”的进程,当前grep
命令除外awk { print $2 }
检索ps
的第二列,即pid sort -nr
按降序排序输出(n
用于数字)head -n 1
获取已排序的pids的第一行,这是最高的