Linux——獲取服務器進程的啟動時間和存活時間

前言

這篇文章主要講獲取Linux系統(tǒng)中獲取進程啟動時間和存活時間的方法,內(nèi)容沒有很多,直接上干貨

有時候我們會希望查看Linux服務器上面某個進程的啟動時間和存活時間,有些讀者可能會想到通過top -p [pid]的方式來進行獲取,但實際上top命令展示的TIME+字段表示的并不是進程存活的時間,而是這個進程累積使用的CPU時間,如果一個進程使用的cpu很少,那即使這個進程已經(jīng)存在N長時間,TIME+ 的值也是很小的數(shù)值。也就是說,TIME+字段的值并不能直接反映出進程的存活時間。

image.png

對這種情況,我們可以使用ps命令來滿足我們的需要,常用的ps -ef命令默認是按照UID PID PPID C STIME TTY TIME CMD來展示信息的,這幾個字段對應的含義如下:

字段名 含義
UID 進程所有者的用戶名或用戶ID(UID)。
PID 進程的ID。
PPID 父進程的ID。
C CPU使用率(%),進程占用的CPU時間比例。
STIME 進程的開始時間。
TTY 啟動進程的終端類型,如果進程不是從終端啟動的,可能會顯示 ? 或具體的終端名。
TIME 進程占用的總CPU時間,包括用戶空間和內(nèi)核空間。
CMD 啟動進程的命令名稱。

我們可以看到,STIME表示進程的開始時間,似乎這個字段就可以滿足我們的需要。事實上,如果對進程啟動時間沒有比較精確要求的話STIME確實可以滿足我們的需要,因為STIME字段其實算是啟動時間的縮寫版本,對于當天啟動的進程來說,這個字段的值會是啟動的時間(格式:時:分,例如18:00),對于早于當天但在今年內(nèi)啟動的進程,這個字段的值會是啟動的日期(格式:月日,例如7月20),對于早于今年啟動的進程,這個字段的值就直接展示具體啟動的年份了。按我觀察的話,似乎結果都是不超過5個字符的。

ps -ef命令執(zhí)行結果

如果我們希望獲取進程啟動的詳細日期怎么辦?

答案是使用自定義的輸出格式,比如ps -eo pid,lstart,etime,cmd (選項o表示使用用戶自定義的格式進行輸出)

參數(shù) 含義
start 顯示進程啟動時間的簡短格式。通常,它會顯示日期時間中的月-日 或者 時-分-秒
start_time 顯示進程啟動時間的簡短格式,通常格式是 年 或者 月-日 或者 時-分,沒有秒
etime 顯示進程啟動的累積時間,通常格式是 天-時-分-秒
etimes 顯示進程啟動的累積時間,通常格式是以秒為單位
lstart 顯示進程的啟動時間的長格式,通常格式是 星期-月-日 時-分-秒 年
stime 進程啟動時間,和start類似,通常格式是 年 或者 月-日 或者 時-分,沒有秒

ps -eo命令執(zhí)行結果

基于lstartetime字段,我們可以從結果中看到對應進程的完整啟動時間和持續(xù)時間

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容