Linux获取进程PID的最佳方法(linux取进程pid)
Linux是一款非常流行的操作系统,它被广泛应用于服务器,PC,移动终端等硬件上。另外,在Linux上运行的程序可以分为进程和线程,每个进程都有一个唯一的标识号 PID(Process ID),进程的状态、文件句柄、用户ID等信息便可通过这个字段获取。那么如何在 Linux 上有效地获取进程PID呢?
当时我们通常使用以下几种方法,可以对进程PID进行获取:
1. 通过 ps 命令。
ps命令用于查看当前终端的运行进程,使用该命令可以查看PID,示例如下所示:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1492 0.0 0.2 13876 3963 ? Ss 17:24 0:00 dash root 1555 0.0 0.2 26436 4408 ? Ss Mar13 0:00 sshd: root [priv]
root 1745 0.0 0.2 26436 4012 ? Ss Mar13 0:00 sshd: root@pts/0
可以看到,每个进程都有一个PID(第2列数据),如果要获取进程PID,只需要使用 grep 命令, eg:
$ ps aux | grep sshd | grep -v 'grep' root 1555 0.0 0.2 26436 4408 ? Ss Mar13 0:00 sshd: root [priv]
则1555就是sshd进程的PID,如果需要获取多个PID,可以使用 -f 选项:
$ ps aux -f | grep sshd | grep -v 'grep'
root 1555 0.0 0.2 26436 4408 ? Ss Mar13 0:00 sshd: root [priv]root 1745 0.0 0.2 26436 4012 ? Ss Mar13 0:00 sshd: root@pts/0
2. 通过 pidof 命令。
pidof 命令可以获取指定进程的PID, eg:
$ pidof sshd
1555 1745
可以看到,拿到多个sshd进程的PID。
3. 通过 pgrep 命令。
pgrep 命令可用于查找指定进程的PID,eg:
$ pgrep sshd
1555 1745
即可以查找指定进程的PID。
4. 通过 /proc 文件系统。
Linux系统的/proc文件系统存储着系统的各种运行信息,其中也有PID的信息。要查看某个进程的PID,只需要进入/proc目录,再进入程序的进程号,eg:
$ cd /proc
$ cd 1555
可以看到,1555是sshd进程的PID,也可以直接通过echo进行查看:
$
1555
综上,关于获取进程PID的最佳方法是使用Linux的ps,pidof,pgrep等命令;或者直接进入/proc文件系统查看信息,这两种方法都能够实现对PID的有效获取。