之前在寫割接文檔時經常要寫:
以 aa 用戶 telnet 登錄到 bb 主機,進入 dd 目錄。 執行
ps -ef | grep 程序名
查詢到該進程的ID,讓后執行:
kill 進程ID
... ... |
寫久了,自己也覺得煩 :)。
今晚寫了一段 shell 腳本,將 ps 查進程號,與 kill 進程合到了一步:)
今後,文檔可以精簡為:
以 aa 用戶 telnet 登錄到 bb 主機,進入 dd 目錄。
執行:
ps -fu `whoami` | grep -w 程序名 | grep -v $$ | awk '{print "kill " $2}' | sh ... ... |
:D
其中主要用到了 "$$"。
寫成shell腳本如下:
#!/usr/bin/env sh
# filename: killsth.sh
# 如果 入參為空, 報錯
if [ -z "$1" ]
then
echo "kill what??"
echo "請輸入正確的格式,如: $0 test"
exit -1
fi
# 變量 $$ 為該shell腳本執行時的 進程ID.
# 運行時, ps、grep、awk 的父進程ID為該腳本的進程ID
# ps 的 -f 參數會顯示父進程ID
# 故通過 grep -v $$ 可以過濾掉:此shell腳本運行的進程、ps 的進程、grep 的進程
ps -fu `whoami` | grep -w $1 | grep -v $$ | awk '{print "kill " $2}' | sh
|
阅读(1521) | 评论(0) | 转发(0) |