1.过滤出进程pid来操作(如杀死),我们经常方式是grep过滤出进程pid
ps -ef |grep nginx|grep -v grep|awk '{print $2}'
2.Linux中提供了一个更简单命令过滤,就是pgrep
过滤出指定用户所有java进程的pid
pgrep -u root java
用户名:root
进程类型:java
过滤出指定用户指定jar包的pid
场景:我们系统中部署了多个jar包,但是我只想找到其中一个jar包的名字,这里我们直接pgrep是无法过滤的,如下
可以看到,我们有启动,但是过滤不出来,所以我们要使用参数-f
pgrep -u root -f abc.jar
Usage:
pgrep [options]
Options:
-d, --delimiter specify output delimiter
-l, --list-name list PID and process name
-a, --list-full list PID and full command line
-v, --inverse negates the matching
-w, --lightweight list all TID
-c, --count count of matching processes
-f, --full use full process name to match
-g, --pgroup <PGID,…> match listed process group IDs
-G, --group <GID,…> match real group IDs
-n, --newest select most recently started
-o, --oldest select least recently started
-P, --parent <PPID,…> match only child processes of the given parent
-s, --session <SID,…> match session IDs
-t, --terminal <tty,…> match by controlling terminal
-u, --euid <ID,…> match by effective IDs
-U, --uid <ID,…> match by real IDs
-x, --exact match exactly with the command name
-F, --pidfile read PIDs from file
-L, --logpidfile fail if PID file is not locked
–ns match the processes that belong to the same
namespace as
–nslist <ns,…> list which namespaces will be considered for
the --ns option.
Available namespaces: ipc, mnt, net, pid, user, uts
-h, --help display this help and exit
-V, --version output version information and exit
For more details see pgrep(1).