Linux下查找進程id並強制中止進程的腳本

    Linux下的tomcat的中止腳本shutdown.sh常常失敗,形成tomcat進程沒關閉。因此只能手動查找進程id,而後用kill命令來強制中止。每次都要這樣查一下,而後再殺進程。感受有點麻煩,因此就把這個動做寫在了腳本里面。    

1、思路

     這個腳本其實就2步,先獲取進程id,而後 kill 掉這個進程。
(1)獲取進程id的方法
    這個能夠用 awk命令來獲取
ps -ef | grep 你的進程 | grep -v grep | awk '{print $2}'
1
1
 
1
ps -ef | grep 你的進程 | grep -v grep | awk '{print $2}'
        這裏要把這個grep這個用 -v 來過濾掉,而後用awk命令,提取第2個參數就是進程id了
(2)殺進程方法
     這個就直接kill -9 進程id 就ok了
kill -9 你的進程id
1
1
 
1
kill -9 你的進程id

2、腳本代碼

    代碼以下(/root/tomcat-instance/shutdown_sp.sh):
sp_pid=`ps -ef | grep sp-tomcat | grep -v grep | awk '{print $2}'`
if [ -z "$sp_pid" ];
then
 echo "[ not find sp-tomcat pid ]"
else
 echo "find result: $sp_pid "
 kill -9 $sp_pid
fi
8
 
1
sp_pid=`ps -ef | grep sp-tomcat | grep -v grep | awk '{print $2}'`
2
if [ -z "$sp_pid" ];
3
then
4
 echo "[ not find sp-tomcat pid ]"
5
else
6
 echo "find result: $sp_pid "
7
 kill -9 $sp_pid
8
fi
        注意:使用時,須要把第一行的 sp-tomcat 替換換成你但願殺的進程
        說明:可能有人會說查找進程出現多個進程id時,腳本會報錯的。 實際上是不會的,出現多個進程id時,他們之間是有空格隔開來了的。恰好kill命令一次殺多個進程時,進程id須要用空格。因此不須要用for循環來殺進程
相關文章
相關標籤/搜索