我看过以下脚本:
$ ./crazy-malloc &
[1] 2817
malloced 3056 MB
$ jobs -x pmap %1
2823: ./crazy-malloc
000cc000 4112K rw--- [ anon ]
004d0000 104K r-x-- /lib/ld-2.3.5.so
004ea000 4K r---- /lib/ld-2.3.5.so
004eb000 4K rw--- /lib/ld-2.3.5.so
004ee000 1168K r-x-- /lib/libc-2.3.5.so
00612000 8K r---- /lib/libc-2.3.5.so
00614000 8K rw--- /lib/libc-2.3.5.so
00616000 8K rw--- [ anon ]
006cf000 124388K rw--- [ anon ]
08048000 4K r-x-- /home/john/examples/mm/crazy-malloc
08049000 4K rw--- /home/john/examples/mm/crazy-malloc
08051000 2882516K rw--- [ anon ]
b7f56000 125424K rw--- [ anon ]
bfa43000 84K rw--- [ stack ]
bfa58000 5140K rw--- [ anon ]
ffffe000 4K ----- [ anon ]
total 3142980K
Q1>行jobs -x pmap %1
的用法是什么?这里%1
表示什么?
jobs -x command [args ...]如果提供了-x选项,则为job 用相应的替换命令或args中找到的任何jobspec 进程组ID,并执行命令传递args,返回它 退出状态。
pmap - 报告流程的内存映射
Q2>前两列代表什么?
答案 0 :(得分:4)
%1
代表您刚刚开始并落后的过程(./crazy-malloc
,pid 2817)。命令jobs -x pmap %1
扩展为pmap 2817
。
pmap
输出中的四列分别代表您的流程映射的每个内存区域的基本地址,大小,权限和映射文件。
答案 1 :(得分:2)
%1
是您发布的段落中的jobspec。基本上,如果你看到像这样的行
[2] 2817
在后台执行作业时,其jobspec为%2
。