我看过下面的脚本:
$ ./crazy-malloc & [1] 2817 malloced 3056 MB $ jobs -x pmap %1 2823: ./crazy-malloc 000cc000 4112K rw--- [ anon ] 004d0000 104K rx-- /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 rx-- /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 rx-- /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选项,作业会将在命令或参数中find的所有jobspecreplace为相应的进程组标识,然后执行命令传递它的参数,返回其退出状态。
pmap – 报告进程的内存映射
Q2>前两列代表什么?
%1
代表刚开始和后台的进程( ./crazy-malloc
2817)。 命令jobs -x pmap %1
扩展到pmap 2817
。
pmap
输出中的四列分别表示由进程映射的每个内存区域的基址,大小,权限和映射文件。
%1
是您发布的段落所涉及的jobspec。 基本上,如果你看到这样的线
[2] 2817
在后台执行作业时,其jobspec将是%2
。