linux獲取jmeter PID並且kill與啟動
阿新 • • 發佈:2018-02-04
ash pidof too awk 區別 執行 自身 通過 sleep
Linux 的交互式 Shell 與 Shell 腳本存在一定的差異,主要是由於後者存在一個獨立的運行進程,因此在獲取進程 pid 上二者也有所區別。
交互式 Bash Shell 獲取進程 pid
在已知進程名(name)的前提下,交互式 Shell 獲取進程 pid 有很多種方法,典型的通過 grep 獲取 pid 的方法為(這裏添加 -v grep是為了避免匹配到 grep 進程):
ps -ef | grep "name" | grep -v grep | awk ‘{print $2}‘
或者不使用 grep(這裏名稱首字母加[]的目的是為了避免匹配到 awk 自身的進程):
ps -ef | awk ‘/[n]ame/{print $2}‘
如果只使用 x 參數的話則 pid 應該位於第一位:
ps x | awk ‘/[n]ame/{print $1}‘
最簡單的方法是使用 pgrep:
pgrep -f name
如果需要查找到 pid 之後 kill 掉該進程,還可以使用 pkill:
pkill -f name
如果是可執行程序的話,可以直接使用 pidof
pidof name
獲取jmeter_pid
[root@izwz9c6q7af34lokld0hqcz ~]# ps -ef | grep "jmeter" | grep -v grep | awk ‘{print $2}‘
18406
18408
18442
編寫shell
#!/bin/bash #jmeter kill and start echo -e ‘\033[32m--------Jmeter---------------\033[0m‘ echo "kill掉jmeter-server 進程................... \n" kill -9 `ps aux | grep jmeter | grep -v grep | awk ‘{print $2}‘` sleep 3 cd /root/tools/apache-jmeter-3.3/bin/ echo "啟動jmeter-server" nohup ./jmeter-server & echo -e ‘\033[32m------------歡迎使用-----------------\033[0m‘
linux獲取jmeter PID並且kill與啟動