fuser命令输出进程ID后尾随'm'的含义及输出到stderr原因问询
关于fuser命令输出中'm'标记的说明
1. 尾随'm'的含义
fuser输出中进程ID后附带的字母是访问类型标识,其中m代表该进程将目标文件/设备映射到了自身的进程地址空间,通常对应以下几种场景:
- 进程正在运行的可执行文件存储在该设备上
- 进程加载了该设备上的动态共享库
- 进程通过
mmap系统调用主动映射了该设备的存储区域
2. 'm'被输出到stderr的原因
psmisc工具包的fuser默认对输出内容做了分流设计,方便后续脚本化处理:
- 纯进程ID列表默认输出到标准输出(stdout),可以直接通过管道传递给
kill、ps等工具做二次处理,不需要额外过滤非PID字符 - 访问类型标记、开头的设备路径提示信息默认输出到标准错误(stderr),避免干扰stdout中纯PID的格式化输出
这就是为什么你将stderr重定向到/dev/null后,'m'标记和开头的设备路径都会消失,只剩下纯PID列表。
内容的提问来源于stack exchange,提问作者NG_
相关产品推荐
相关产品推荐

