2014-04-04 32 views

回答

1

請參閱top的命令行選項。 -b用於非交互式使用。可能你會想調用-n來告訴它要使用多少次迭代。

top -b -n1 | other_program 

至於選擇列,這可能需要更交互方法(如使用僞終端或在TclExpect)操作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]$ 
+0

是的,但我怎麼設置從批處理模式中顯示的列?我無法找到任何可以完成此任務的命令行選項。 – JohnDoe

+0

例如,在文檔(http://unixhelp.ed.ac.uk/CGI/man-cgi?top)中,在第2b節中討論瞭如何選擇和排序列。雖然,它只討論如何在交互模式下做到這一點。 – JohnDoe

+0

@JohnDoe:對不起,我中斷了更新我的答案。我討論解決這個問題的方法。 – wallyk