ope*_*ion 49 linux shell redhat
如何在linux中只获取指定进程名的进程ID?
ps -ef|grep java
test 31372 31265 0 13:41 pts/1 00:00:00 grep java
Run Code Online (Sandbox Code Playgroud)
根据进程ID,我会写一些逻辑.那么我如何只获取特定进程名称的进程ID.
示例程序:
PIDS= ps -ef|grep java
if [ -z "$PIDS" ]; then
echo "nothing"
else
mail test@domain.com
fi
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 63
您可以使用:
ps -ef | grep '[j]ava'
Run Code Online (Sandbox Code Playgroud)
或者如果pgrep可用则更好用:
pgrep -f java
Run Code Online (Sandbox Code Playgroud)
Jos*_*rez 62
您可以将输出传输到awk以仅打印PID.例如:
Run Code Online (Sandbox Code Playgroud)ps -ef | grep nginx | awk '{print $2}' 9439
ven*_*syv 38
用这个: ps -C <name> -o pid=
此命令忽略grep进程,只返回PID:
ps -ef | grep -v grep | grep java | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
为什么不只是pidof?
pidof <process_name>
Run Code Online (Sandbox Code Playgroud)
它将返回与进程名称匹配的pid列表
https://linux.die.net/man/8/pidof
| 归档时间: |
|
| 查看次数: |
62821 次 |
| 最近记录: |