如何在Linux上仅获取指定进程名的进程ID?

问题描述 投票:0回答:5

如何在 Linux 上仅获取指定进程名的进程 ID?

ps -ef|grep java
test 31372 31265  0 13:41 pts/1    00:00:00 grep java

根据进程ID,我将编写一些逻辑。那么如何才能只获取特定进程名称的进程ID呢?

示例程序:

PIDS= ps -ef|grep java
if [ -z "$PIDS" ]; then
echo "nothing"
else
mail [email protected]
fi
regex linux shell redhat
5个回答
105
投票

您可以将输出通过管道传输到 awk 以仅打印 PID。例如:

ps -ef | grep nginx | awk '{print $2}'
9439

104
投票

您可以使用:

ps -ef | grep '[j]ava'

或者如果

pgrep
可用,则更好使用:

pgrep -f java

79
投票

使用这个:

ps -C <name> -o pid=


25
投票

此命令忽略 grep 进程,只返回 PID:

ps -ef | grep -v grep | grep java | awk '{print $2}'

21
投票

为什么不只是 pidof ?

pidof <process_name>

它将返回与进程名称匹配的 pid 列表

https://linux.die.net/man/8/pidof

© www.soinside.com 2019 - 2024. All rights reserved.