1. 使用pidin查看系统进程列表
任务目标
在QNX Neutrino实时操作系统中,使用pidin命令查看当前系统运行的进程列表,并理解输出中进程ID(PID)、进程名、所属用户、内存占用等关键字段的含义。本案例以QNX虚拟机或真实硬件终端环境为背景,通过实际执行pidin命令并解读输出,掌握该工具的基本用法。
环境准备
本案例需要一台运行QNX Neutrino 7.0或更高版本的目标设备(或QNX虚拟机),并已获得shell访问权限。无需额外安装软件,pidin是QNX系统自带的系统信息查看工具,位于/bin目录下。
核心命令与输出解读
pidin命令不带参数时,默认显示系统中所有进程的概要信息。其输出格式如下:
pidin
PID NAME OWNER CPU TIME PRI STATE
1 /proc/boot/procnto-smp-instr root 0 0:00 10 RUN
2 /proc/boot/startup root 0 0:00 10 RUN
... ... ... ... ... ... ...
各列含义:
- PID:进程标识符,唯一标识一个进程。
- NAME:进程的可执行文件完整路径。
- OWNER:运行该进程的用户名。
- CPU:进程最近一次运行所在的CPU编号(多核系统中有意义)。
- TIME:进程累计消耗的CPU时间(格式为分钟:秒)。
- PRI:进程当前的调度优先级。
- STATE:进程当前状态,如
RUN(运行中)、READY(就绪)、WAIT(等待)、ZOMB(僵尸)等。
常用选项
| 选项 | 功能说明 | 示例 |
|---|---|---|
-p <pid> | 仅显示指定PID的进程信息 | pidin -p 1 |
-n <name> | 按进程名匹配过滤(支持通配符) | pidin -n *sh |
-f <字段> | 自定义输出字段,如pid,name,state | pidin -f pid,name,state |
-F | 显示完整命令行参数(而非仅可执行路径) | pidin -F |
-m | 显示内存映射信息(含每个进程的内存占用详情) | pidin -m |
验证方法
在QNX shell中依次执行以下命令,并观察输出:
# 1. 查看完整进程列表
pidin
# 2. 查看指定进程(以PID 1为例)
pidin -p 1
# 3. 按名称过滤(例如查找所有shell进程)
pidin -n *sh
# 4. 自定义输出字段
pidin -f pid,name,pri,state
# 5. 查看进程完整命令行
pidin -F | head -20
通过条件:
- 执行
pidin后能看到多行进程记录,每行包含PID、NAME、OWNER等列,且PID 1对应的procnto进程存在。 pidin -p 1仅输出一行,且PID列值为1。pidin -n *sh的输出中,NAME列均以sh结尾。pidin -f pid,name,pri,state的输出仅包含指定的四列。pidin -F输出的命令行参数比默认输出更完整(例如包含-c等启动参数)。
若以上命令均能正确执行且输出格式符合预期,则判定本案例验证通过。
常见问题
- 输出列错位或显示不全:终端宽度不足时,可尝试
pidin | more分页查看,或使用-f减少输出列。 - 权限不足:查看其他用户进程的详细信息(如内存映射)可能需要root权限,普通用户执行
pidin -m时部分字段可能显示为?。 - 进程名匹配不生效:
-n选项匹配的是可执行文件路径的完整字符串,使用通配符时需确保shell未先行展开,必要时加引号:pidin -n '*sh'。