0
有沒有什麼辦法可以在不進入交互模式的情況下選擇標準的unix top命令顯示的列。我希望能夠從另一個C程序中調用頂級命令。Unix頂部命令列選擇與另一個C程序?
有沒有什麼辦法可以在不進入交互模式的情況下選擇標準的unix top命令顯示的列。我希望能夠從另一個C程序中調用頂級命令。Unix頂部命令列選擇與另一個C程序?
請參閱top
的命令行選項。 -b
用於非交互式使用。可能你會想調用-n
來告訴它要使用多少次迭代。
top -b -n1 | other_program
至於選擇列,這可能需要更交互方法(如使用僞終端或在Tcl
Expect
)操作top
的。如果不是這樣,直接從/proc/
收集所需信息...
舉個例子,看看豐富的可用於大多數進程的信息,在這個例子中,我選擇了PID 1429,Firefox瀏覽器我用來寫這個。
[[email protected] VMs]$ ll /proc/1429/
total 0
dr-xr-xr-x. 2 wally wally 0 Apr 4 05:58 attr
-rw-r--r--. 1 wally wally 0 Apr 4 05:58 autogroup
-r--------. 1 wally wally 0 Apr 4 05:58 auxv
-r--r--r--. 1 wally wally 0 Apr 4 05:58 cgroup
--w-------. 1 wally wally 0 Apr 4 05:58 clear_refs
-r--r--r--. 1 wally wally 0 Mar 10 16:55 cmdline
-rw-r--r--. 1 wally wally 0 Apr 4 05:58 comm
-rw-r--r--. 1 wally wally 0 Apr 4 05:58 coredump_filter
-r--r--r--. 1 wally wally 0 Apr 4 05:58 cpuset
lrwxrwxrwx. 1 wally wally 0 Apr 4 05:58 cwd -> /home/wally
-r--------. 1 wally wally 0 Apr 4 05:58 environ
lrwxrwxrwx. 1 wally wally 0 Mar 23 18:37 exe -> /usr/lib64/firefox/firefox
dr-x------. 2 wally wally 0 Apr 4 05:58 fd
dr-x------. 2 wally wally 0 Apr 4 05:58 fdinfo
-r--------. 1 wally wally 0 Apr 4 05:58 io
-r--r--r--. 1 wally wally 0 Apr 4 05:58 limits
-rw-r--r--. 1 wally wally 0 Apr 4 05:58 loginuid
-r--r--r--. 1 wally wally 0 Apr 4 05:58 maps
-rw-------. 1 wally wally 0 Apr 4 05:58 mem
-r--r--r--. 1 wally wally 0 Apr 4 05:58 mountinfo
-r--r--r--. 1 wally wally 0 Apr 4 05:58 mounts
-r--------. 1 wally wally 0 Apr 4 05:58 mountstats
dr-xr-xr-x. 5 wally wally 0 Apr 4 05:58 net
dr-x--x--x. 2 wally wally 0 Apr 4 05:58 ns
-r--r--r--. 1 wally wally 0 Apr 4 05:58 numa_maps
-rw-r--r--. 1 wally wally 0 Apr 4 05:58 oom_adj
-r--r--r--. 1 wally wally 0 Apr 4 05:58 oom_score
-rw-r--r--. 1 wally wally 0 Apr 4 05:58 oom_score_adj
-r--r--r--. 1 wally wally 0 Apr 4 05:58 pagemap
-r--r--r--. 1 wally wally 0 Apr 4 05:58 personality
lrwxrwxrwx. 1 wally wally 0 Apr 4 05:58 root ->/
-rw-r--r--. 1 wally wally 0 Apr 4 05:58 sched
-r--r--r--. 1 wally wally 0 Apr 4 05:58 sessionid
-r--r--r--. 1 wally wally 0 Apr 4 05:58 smaps
-r--r--r--. 1 wally wally 0 Apr 4 05:58 stack
-r--r--r--. 1 wally wally 0 Mar 10 16:56 stat
-r--r--r--. 1 wally wally 0 Apr 4 05:56 statm
-r--r--r--. 1 wally wally 0 Mar 10 16:56 status
-r--r--r--. 1 wally wally 0 Apr 4 05:58 syscall
dr-xr-xr-x. 43 wally wally 0 Mar 10 16:56 task
-r--r--r--. 1 wally wally 0 Apr 4 05:58 wchan
例如,在命令行:
[[email protected] VMs]$ cat /proc/1429/cmdline
/usr/lib64/firefox/firefox[[email protected] VMs]$
是的,但我怎麼設置從批處理模式中顯示的列?我無法找到任何可以完成此任務的命令行選項。 – JohnDoe
例如,在文檔(http://unixhelp.ed.ac.uk/CGI/man-cgi?top)中,在第2b節中討論瞭如何選擇和排序列。雖然,它只討論如何在交互模式下做到這一點。 – JohnDoe
@JohnDoe:對不起,我中斷了更新我的答案。我討論解決這個問題的方法。 – wallyk