Linux
注意記住它的最後一個零退出輸出
我執行一個需要大量時間的過程。時間實際上不是問題,但我想知道它需要多少 RAM 記憶體。程序已經在執行,所以
/usr/bin/time
不是一個選項。我找到了我的程序的pid並執行watch -n 1 grep VmHWM /proc/3100/status
它工作得很好,我可以離開它,做一些其他的工作,然後稍後檢查以 1 秒為間隔記錄的值是多少。如果/當程序終止(完成作業或因OOM而被殺死)時,問題就開始了,因為 watch 將最後一個有效輸出替換為
grep: /proc/3100/status: No such file or directory
使用選項
-e
沒有幫助。有沒有辦法watch
在非零退出時不刷新輸出?或者顯示兩個最近的,所以之前的零退出仍然可以看到?
我會為此使用 shell while 循環。
pid=3100 while out=$(grep VmHWM /proc/$pid/status); do printf "\r$out " sleep 1 done printf "\n"