最后的pid进程linux

时间:2015-06-08 14:59:18

标签: linux pid

我试图获取进程的最后一个pid(例如sleep)。我这样做:

# sleep 10 &
[1] 14115

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

# ps aux --sort +start_time | tail -n 4 | awk 'NR==1{print $2 " " $11}'
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 $2 " " $11}'

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

# pgrep -n 'name_of_the_process'

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您可以通过以下方式获取上一个流程的pid: echo $!