Linux下查詢程序id並強制停止程序的指令碼

2022-01-12 16:41:45 字數 1444 閱讀 9856

linux下的tomcat的停止指令碼shutdown.sh經常失敗,造成tomcat程序沒關閉。所以只能手動查詢程序id,然後用kill命令來強制停止。每次都要這樣查一下,然後再殺程序。感覺有點麻煩,所以就把這個動作寫在了指令碼裡面。    這個指令碼其實就2步,先獲取程序id,然後 kill 掉這個程序。

(1)獲取程序id的方法

這個可以用 awk命令來獲取

ps -ef | grep 你的程序 | grep -v grep | awk ''
11

ps

-ef | grep 你的程序 | grep

-vgrep | awk

''

這裡要把這個grep這個用 -v 來過濾掉,然後用awk命令,提取第2個引數就是程序id了

(2)殺程序方法

這個就直接kill -9 程序id 就ok了

kill -9 你的程序id
11

kill

-9 你的程序id

**如下(/root/tomcat-instance/shutdown_sp.sh):

sp_pid=`ps -ef | grep sp-tomcat | grep -v grep | awk ''`

if [ -z "$sp_pid" ];

then

echo "[ not find sp-tomcat pid ]"

else

echo "find result: $sp_pid "

kill -9 $sp_pid

fi

8

sp_pid

=`ps -ef | grep sp-tomcat | grep -v grep | awk ''`

if [ -z

"$sp_pid

" ];

then

echo

"[ not find sp-tomcat pid ]"

else

echo

"find result:

$sp_pid

"

kill

-9$sp_pid

fi

注意:使用時,需要把第一行的 sp-tomcat 替換換成你希望殺的程序

說明:可能有人會說查詢程序出現多個程序id時,指令碼會報錯的。

其實是不會的,出現多個程序id時,他們之間是有空格隔開來了的。剛好kill命令一次殺多個程序時,程序id需要用空格。所以不需要用for迴圈來殺程序

Linux基礎命令 查詢程序id

pidof pidof 可以查詢指定名稱的程序的pid,將結果送到標準輸出。pidof有兩種返回值 0,找到至少乙個程序 1,沒有找到程序。pidof實際上與killall5相同 程式根據呼叫它的名稱進行操作。此命令的適用範圍 redhat rhel ubuntu centos suse opens...

Linux基礎命令 查詢程序id

pidof pidof可以查詢指定名稱的程序的pid,將結果送到標準輸出。pidof有兩種返回值 0,找到至少乙個程序 1,沒有找到程序。pidof實際上與killall5相同 程式根據呼叫它的名稱進行操作。此命令的適用範圍 redhat rhel ubuntu centos suse opensu...

Linux系統下查詢程序

a 顯示所有終端下執行的程序 a 顯示與終端相關的所有程序,包含每個程序的完整路徑 x 顯示與終端無關的所有程序 u 顯示程序的使用者資訊 u 顯示指定使用者相關的程序資訊 e 顯示所有程序 f 額外顯示uid ppid c與stime欄位 f 顯示程序樹 h 顯示程序樹 l 以詳細的格式來顯示程序...