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 以詳細的格式來顯示程序...