Linux/UNIX:查找或确定进程pid是否正在运行

时间:2020-01-09 10:40:11  来源:igfitidea点击:

如何确定我的进程在类似Unix的操作系统上运行?

在使用bash shell的Linux操作系统上,如何获取特定进程的pid号?

PID是Linux或类Unix操作系统上的进程标识号的缩写。

PID在创建时会自动分配给每个过程。一个进程不过是程序的运行实例,并且每个进程在类Unix系统上都有唯一的PID。

找出进程是否正在运行的最简单方法是运行ps aux命令和grep进程名称。
如果您获得输出以及进程名称/pid,则表明您的进程正在运行。

找出进程pid

只需使用ps命令,如下所示:

ps aux | grep {process-name}

例如,找出mysqld进程(mysqld pid)是否正在运行:

$ ps aux | grep mysqld

输出示例:

mysql    28290  1.1  2.7 340496 56812 ?        Sl   Jul31 348:27 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock

使用pidof查找正在运行的程序的进程ID

pidof命令查找命名程序的进程ID(pids)。
它在屏幕上显示这些ID。
该程序在运行级别更改脚本中使用的某些系统上,特别是当系统具有类似于System-V的rc结构时。
在这种情况下,这些脚本位于/etc/rc?.d中,其中?
是运行级别。
如果系统具有应使用的start-stop-daemon(8)程序。

# pidof mysqld

输出示例:

28290

使用pgrep命令查找PID

pgrep命令搜索正在运行的系统,并显示与给定条件匹配的所有进程的进程ID。
语法为:

pgrep {processNameHere}
pgrep firefox
pgrep httpd
pgrep nginx

输出示例:

4241