2015-06-08 82 views
0

我正在嘗試獲取進程的最後一個pid(例如sleep)。我這樣做:最後一個pid進程linux

# 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}' 

awk過程開始的具體的處理

# pgrep -n 'name_of_the_process' 

回答

1

另一種解決方案,並佔據在輸出另一條線。嘗試tail -n 5,但它不可靠,因爲另一個過程可以在兩者之間開始。請參閱psgrep

+0

我用尾巴-n5知道了,謝謝! :) – Safira

0

你可以得到最後一個進程的PID: echo $!

+0

它也可以。謝謝 :) – Safira

相關問題