Linux如何根據進程名稱的一部分kill掉進程

Linux如何根據進程名稱的一部分kill掉進程

ps -ef | grep javadeploy.jar | grep -v grep | awk '{print $2}' | xargs kill

上面這條命令的意思是先經過ps將進程ID獲得,而後再kill。可是有一個問題,就是若是這個進程不存在,kill就會出錯。如何在這條命令上加個判斷,若是存在則運行kill,不存在則不執行kill。java

圖片描述

另外試過killall、pkill命令並不能kill。
圖片描述spa

——————————————分割線——————————————.net

該問題已經解決,給出解決方法:
一、因爲是根據參數的一部分kill,因此直接使用pkill javadeploy.jar不行,可是能夠使用pkill -f javadeploy.jar來kill該進程;
二、@小_秦 提供的方法,加上xargs後面--no-run-if-empty,即ps -ef | grep javadeploy.jar | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty killcode

相關文章
相關標籤/搜索