Linux下查看进程状态可以使用ps命令,例如ps aux,可以看到PID或者CPU、内存使用率等。
如果想要找到特定的程序的进程,那么可以配合使用grep查找出特定的进程PID,因为在执行shell脚本的时候,本身自己也是一个进程,如果用grep很有可能把自己也列出来,所以需要如下方式:
(把name换成具体的关键词,使用grep -v grep把自己排除掉)
ps -ef | grep "name" | grep -v grep | awk '{print $2}'
这个例子就是赋值给PID变量:
PID=$(ps -ef | grep "name" | grep -v grep | awk '{print $2}')
另外还可以使用pgrep这个命令来查找,例如:
pgrep -f java pgrep -x "nginx" # -x的完全匹配名称,-f和grep -p类似,模糊匹配 # 查出进程赋值给PID PID=$(pgrep -f java)
引用
Shell中可以利用查找到PID后,做杀死进程的功能(例如重启某个程序前需要确保已经关闭之前的程序)
ps -ef | grep your_process_name | grep -v grep | awk '{print $2}' | xargs kill
文章评论