有没有办法在不进入交互模式的情况下选择标准 unix top 命令显示的列。我希望能够从另一个 C 程序中调用 top 命令。
问问题
151 次
1 回答
1
请参阅top
的命令行选项。 -b
用于非交互式使用。可能你会想要调用-n
来告诉它要使用多少次迭代。
top -b -n1 | other_program
至于选择列,这可能需要一种更具交互性的操作方法(例如使用伪 tty 或Expect
in Tcl
)top
。要么直接从/proc/
...收集所需的信息
例如,查看可用于大多数进程的丰富信息集,在此示例中,我选择了 pid 1429,即我用来编写此内容的 Firefox 浏览器。
[wally@f17tb3d 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
例如,命令行:
[wally@f17tb3d VMs]$ cat /proc/1429/cmdline
/usr/lib64/firefox/firefox[wally@f17tb3d VMs]$
于 2014-04-04T00:14:20.957 回答