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
学习shell 地址
https://www.yiibai.com/shell/unix-special-variables.html
http://wiki.jikexueyuan.com/project/shell-learning/gorgeous-printf-output.html
转载于:https://blog.51cto.com/hsuing/2107977