jobs
在調查in的輸出時bash
,您通常會得到如下列表:
[root@csx-tzg-sac-01 ~]# jobs
[2] Running ( sleep 600 && ls -lh ~ossadmin/*.iso ) &
[3]- Running ( sleep 900 && ls -lh ~ossadmin/*.iso ) &
[4]+ Running ( sleep 900 && ls -lh ~ossadmin/*.iso ) &
您能否確定給定作業何時開始喬比德(即,不是從類似的地方查看pid ps
)?
如果是這樣,怎麼辦?
答案1
您可以從 取得作業的 pid jobs -l
,這樣您就不必打獵透過ps
輸出找到工作。這就是你試圖避免的原因嗎ps
?
jobs -l | sed 's/^\[[0-9]*\][^0-9]*\([0-9][0-9]*\)[^0-9].*/\1/' | xargs ps up
將在 bash 和 zsh 中工作。
如果您使用 zsh,則該zsh/parameters
模組提供$jobstates
數組變數。例如:
% echo $jobstates[1]
running:-:14975=running
這樣可以更容易解析 pid。如果您使用的系統上的/proc
proc 目錄上的時間戳會告訴您流程何時啟動。
$ ls -ld /proc/$$