最后一个 pid 进程 linux

Last pid process linux

我正在尝试获取进程的最后一个 pid(例如睡眠)。我这样做:

# sleep 10 &
[1] 14115

但是当我使用此命令获取最后一个 pid 时:

# ps aux --sort +start_time | tail -n 4 | awk 'NR==1{print  " " }'
14125 sleep

pid 不一样,我不明白我做错了什么,因为如果我这样做但没有命令的最后一部分,我会得到相同的 pid:

# sleep 10 &
[1] 15853

# ps aux --sort +start_time | tail -n 4
root     15853  0.0  0.1   3364   520 pts/2    S    16:45   0:00 sleep 10
www-data 15871  0.0  0.0   1864   452 ?        S    16:45   0:00 sleep 1
root     15872  0.0  0.2   4344  1168 pts/2    R+   16:45   0:00 ps aux --sort +start_time
root     15873  0.0  0.1   3756   676 pts/2    S+   16:45   0:00 tail -n 4

提前致谢

[已解决]

# ps aux --sort +start_time | tail -n 5 | awk 'NR==1{print  " " }'

具体流程的另一种解决方案

# pgrep -n 'name_of_the_process'

awk 进程启动,并在输出中占据另一行。尝试 tail -n 5,但它不可靠,因为无论如何都可以在两者之间启动另一个进程。参见 psgrep

您可以通过以下方式获取最后一个进程的 pid: 回声 $!