Top為什麼
為什麼nohup top
會切斷輸出行?
我想用來
nohup
定期記錄top
(每 15 秒)的輸出。為此,我使用 SSH 登錄伺服器,執行以下命令,然後再次註銷:nohup top -b -c -d15 &
該
-c
標誌提供有關命令的附加資訊,但在生成的nohup.out
文件中,此資訊被削減為 82 個字元。所以不是這樣的輸出:
10484 daemon 20 0 68924 5556 2292 S 0.0 0.0 0:00.06 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -k start
…
nohup.out
它看起來像這樣:10484 daemon 20 0 68924 5556 2292 S 0.0 0.0 0:00.06 /opt/CollabNet_Subv
如何防止
nohup
修剪結果top
?
您需要使用參數指定
top
應使用的輸出寬度-w
(最多 512 列):nohup top -b -c -d15 -w512 &
如果你的版本
top
不支持,使用環境變數-w
也可以達到同樣的效果:COLUMNS
COLUMNS=512 nohup top -b -c -d15 &
正如schily所解釋的,由於
top
在這種情況下不輸出到終端,它無法確定要使用的終端寬度並回退到安全的預設值。
除非有明確的方式告訴您的特定
top
版本應該使用哪個輸出,否則您不能。我知道的top
實現不允許指定輸出寬度。這是因為
nohup
導致top
程序使用純文件stdout
而不是終端執行。因此,
top
無法檢索 tty 寬度並回退到標準的 80 列。