
OpenHarmony设备开发小型系统内核(LiteOS-A) 调测与工具系统命令
版本:V3.2Beta
kill
命令功能
kill命令用于发送特定信号给指定进程,让它去终结不正常的应用。
命令格式
kill [-l [signo] | -s signo | -signo] pid…
参数说明
表1 参数说明
参数 | 参数说明 | 取值范围 |
–help | 查看kill命令支持的参数列表 | N/A |
-l | 列出信号名称和编号。 | N/A |
-s | 发送信号 | N/A |
signo | 信号ID。 | [1, 30] |
pid | 进程ID。 | [1, MAX_INT] |
须知:
signo有效范围为[0, 64],建议取值范围为[1, 30],其余为保留内容。
使用指南
- 必须指定发送的信号编号及进程号。
- 进程编号取值范围根据系统配置变化,例如系统最大支持pid为256,则取值范围缩小为[1, 256]。
特殊说明
kill命令以及参数 shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
使用实例
- 查看当前进程列表,查看需要杀死的进程PID(42)。
- 发送信号9(SIGKILL默认行为为立即终止进程)给42号进程test_demo(用户态进程):kill -s 9 42(kill -9 42效果相同),并查看当前进程列表,42号进程已终止。
- 发送不存在的信号值 kill -100 31
输出说明
发送成功或失败输出结果如下。
示例1 发送信号给指定进程
信号发送成功会显示的提示进程已被杀死。
示例2 信号发送失败
信号发送失败,示例2所示原因为信号发送命令参数无效,请排查信号编号及进程编号是否有效。
log
命令功能
log命令用于修改&查询日志配置。
命令格式
log level [levelNum]
参数说明
表1 参数说明
参数 | 参数说明 | 取值范围 |
levelNum | 配置日志打印等级。 | [0, 5] |
使用指南
- 该命令依赖于LOSCFG_SHELL_LK,使用时通过menuconfig在配置项中开启"Enable Shell lk": Debug —> Enable a Debug Version —> Enable Shell —> Enable Shell lK。
- log level命令用于配置日志的打印等级,包括6个等级 TRACE_EMG = 0,
TRACE_COMMON = 1,
TRACE_ERROR = 2,
TRACE_WARN = 3,
TRACE_INFO = 4,
TRACE_DEBUG = 5
若level不在有效范围内,会打印提示信息。 - 若log level命令不加[levelNum]参数,则默认查看当前打印等级,并且提示使用方法。
- 开源小型系统源码设置level 为4或者5会有超多打印。
使用实例
举例:输入log level 3
输出说明
示例 设置当前日志打印级别为3
memcheck
命令功能
检查动态申请的内存块是否完整,是否存在内存越界造成节点损坏。
命令格式
memcheck
参数说明
无
使用指南
- 当内存池所有节点完整时,输出"system memcheck over, all passed!"。
- 当内存池存在节点不完整时,输出被损坏节点的内存块信息。
使用实例
举例:
- 输入memcheck
- 输入memcheck出现内存越界
输出说明
示例1 当前没有内存越界
示例2 出现内存越界
oom
命令功能
查看和设置低内存阈值以及pagecache内存回收阈值。
命令格式
oom
oom -i [interval]
oom -m [mem byte]
oom -r [mem byte]
oom -h | --help
参数说明
表1 参数说明
参数 | 参数说明 | 取值范围 |
-i [interval] | 设置oom线程任务检查的时间间隔。 | [100, 10000] 单位: ms |
-m [mem byte] | 设置低内存阈值。 | 0MB ~ 1MB,0MB表示不做低内存阈值检查。 |
-r [mem byte] | 设置pagecache内存回收阈值。 | 低内存阈值 ~ 系统可用最大内存,一个pagecache页一般为4KB,也有16 ~ 64KB的情况。 |
-h | --help | 使用帮助。 | N/A |
使用指南
参数缺省时,显示oom功能当前配置信息。
说明:
当系统内存不足时,会打印出内存不足的提示信息。
使用实例
举例:
- oom
- oom -i 100
输出说明
示例1 oom缺省打印配置信息
系统内存不足时打印提示信息
示例2 设置 oom 线程任务检查的时间间隔
表2 输出说明
输出 | 说明 |
[oom] OS is in low memory state total physical memory: 0x1bcf000(byte), used: 0x1b50000(byte), free: 0x7f000(byte), low memory threshold: 0x80000(byte) | 操作系统处于低内存状态。 整个系统可用物理内存为0x1bcf000 byte,已经使用了 0x1b50000 byte, 还剩0x7f000 byte,当前设置的低内存阈值为0x80000 byte。 |
[oom] candidate victim process init pid: 1, actual phy mem byte: 82602 | 打印当前各个进程的内存使用情况,init进程实际占用物理内存82602byte。 |
[oom] candidate victim process UserProcess12 pid: 12, actual phy mem byte: 25951558 | UserProcess12进程实际使用25951558byte内存。 |
[oom] max phy mem used process UserProcess12 pid: 12, actual phy mem: 25951558 | 当前使用内存最多的进程是UserProcess12。 |
excFrom: User! |
pmm
命令功能
查看系统内存物理页及pagecache物理页使用情况。
命令格式
pmm
参数说明
无
使用指南
Debug版本才具备的命令。
使用实例
举例:输入pmm
输出说明
示例 查看物理页使用情况
表1 输出说明
输出 | 说明 |
phys_seg | 物理页控制块地址信息 |
base | 第一个物理页地址,即物理页内存起始地址 |
size | 物理页内存大小 |
free_pages | 空闲物理页数量 |
active anon | pagecache中,活跃的匿名页数量 |
inactive anon | pagecache中,不活跃的匿名页数量 |
active file | pagecache中,活跃的文件页数量 |
inactive file | pagecache中,不活跃的文件页数量 |
pmm pages | total:总的物理页数,used:已使用的物理页数,free:空闲的物理页数 |
reset
命令功能
reset命令用于重启设备。
命令格式
reset
参数说明
无
使用指南
reset命令输入后,设备会立刻重启。
使用实例
reset
输出说明
无
sem
命令功能
sem命令用于查询系统内核信号量相关信息。
命令格式
sem [ID_ / fulldata_]
参数说明
表1 参数说明
参数 | 参数说明 | 取值范围 |
ID | 信号量ID。 | [0, 1023]或[0x0, 0x3FF] |
fulldata | 查询所有在用的信号量信息,打印信息包括如下:SemID, Count, Original Count, Creator TaskEntry, Last Access Time。 | N/A |
使用指南
- 参数缺省时,显示所有的信号量的使用数及信号量总数。
- sem后加ID,显示对应ID信号量的使用数。
- 参数fulldata依赖于LOSCFG_DEBUG_SEMAPHORE,使用时通过menuconfig在配置项中开启"Enable Semaphore Debugging": Debug —> Enable a Debug Version —> Enable Debug LiteOS Kernel Resource —> Enable Semaphore Debugging
使用实例
- 输入sem
- 配置LOSCFG_DEBUG_SEMAPHORE标志,输入 sem fulldata
输出说明
示例1 查询所有在用的信号量信息
表2 输出说明
输出 | 说明 |
SemID | 信号量ID。 |
Count | 信号量使用数。 |
说明:
● sem命令的ID参数输入形式以十进制形式表示或十六进制形式表示皆可。
● sem命令的ID参数在[0, 1023]范围内时,返回对应ID的信号量的状态(如果对应ID的信号量未被使用则进行提示);其他取值时返回参数错误的提示。
示例2 查询所有在用的信号量信息
表3 输出说明
输出 | 说明 |
SemID | 信号量ID。 |
Count | 信号量使用数。 |
OriginalCount | 信号量原始计数。 |
Creator | 信号量的创建线程的入口函数地址。 |
LastAccessTime | 上次访问时间。 |
