ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

QNX SLM (System Launch and Monitor) 使用指南

QNX SLM (System Launch and Monitor) 使用指南

QNX SLM (System Launch and Monitor) 使用指南

适用版本: QNX 8.0
文档来源: QNX Neutrino RTOS 官方文档
用途: 系统启动顺序管理、多进程生命周期监控、故障恢复


目录

  1. SLM 概述
  2. 命令行语法
  3. XML 配置文件参考
  4. 启动脚本 (Boot Scripts)
  5. 运行模式与恢复策略
  6. 终止场景分类
  7. 配置示例
  8. 与 OS Builder 集成

1. SLM 概述

SLM(System Launch and Monitor) 是 QNX Neutrino 的系统启动与监视管理器,负责:

  • 按依赖顺序启动多进程应用
  • 监控进程运行状态
  • 故障时自动恢复指定组件
  • 管理系统关机顺序

SLM 从 XML 配置文件构建一个DAG(有向无环图),根据组件间的依赖关系确定启动顺序。SLM 提供启动阶段的系统引导功能,在 startup 和内核初始化完成后接管系统启动流程。

1.1 启动阶段定位

SLM 在系统启动序列中的位置:

QNX 启动顺序: IPL(ROM) → startup → 内核初始化 → procnto → slm → 其他系统组件 │ ├─ io-sock (网络) ├─ io-usb (USB) └─ 其他应用进程

1.2 SLM 服务模式

SLM 通常以两种方式工作:

模式启动方式使用场景
Startup Managerboot 脚本直接启动系统级启动流程管理
Post-startup Managerslmctl 触发用户级/应用级进程管理

在 boot 脚本中,SLM 作为startup_manager运行,是系统启动阶段的默认进程管理器。


2. 命令行语法

2.1 基本语法

slm [-avV] [-b seconds] [-D debug_mode] [-n subsystem_path] [-p priority] [-P search_path] [-r recovery_mode] [-R frequency/sec|min|hour] [-s comp_name] [-t polling_interval] [-T total_wait] [-x comp_name] config_file

2.2 选项说明

选项说明
-a启动所有顶级组件,即使未启用或缺少依赖
-b seconds启动 seqno 启动前等待的秒数(默认 0)
-D debug_mode调试模式:debugverboseverbose_exit
-n subsystem_path用于 slmctl 通信的路径前缀
-p prioritySLM 进程优先级
-P search_path搜索路径,覆盖SLM_SEARCH_PATH环境变量
-r recovery_mode恢复模式:nonerestart(默认restart
-R frequency每个组件每分钟/小时的恢复最大次数
-s comp_name仅启动指定组件,跳过依赖关系
-t polling_interval轮询间隔(秒),用于 waitfor 轮询
-T total_wait总的等待时间(秒),超时后仍继续
-v详细输出
-V更详细的输出
-x comp_name排除指定组件
config_fileXML 配置文件路径

2.3 辅助工具

工具说明
slmctlSLM 运行时控制工具,用于启动/停止组件、查询状态
waitfor等待组件/路径/条件满足的同步工具

slmctl支持以下操作:

  • slmctl start <comp>— 启动指定组件
  • slmctl stop <comp>— 停止指定组件
  • slmctl status [comp]— 查询组件状态

3. XML 配置文件参考

3.1 根元素

<SLM:systemxmlns:SLM="http://www.qnx.com/slm">...</SLM:system>

3.2 完整元素参考

元素父元素说明
abilitycomponent组件能力声明
argscomponent命令行参数
cdcomponent工作目录
commandcomponent启动命令路径,支持launch属性
componentsystem,module,depend基本组件单元
debugcomponent调试选项
dependcomponent依赖声明,支持type属性
envvarcomponent环境变量设置
groupscomponent组件所属组
membermodule模块成员引用
modulesystem模块定义(组件组)
prioritycomponent进程优先级
repaircomponent修复操作(重启/命令)
rlimitcomponent资源限制
runmaskcomponentCPU 亲和性掩码
stderrcomponent标准错误重定向
stdincomponent标准输入重定向
stdoutcomponent标准输出重定向
stopcomponent停止命令/信号
ttycomponent终端设备
typecomponent进程类型
usercomponent运行用户
waitforcomponent启动条件等待,支持wait属性
module(boot)SLM:system(boot)引导模块

3.3 元素详解

component

基本执行单元定义:

<SLM:component default="enable|disable"<!-- 默认启用/禁用 -->launch="critical|builtin|session|pathname"<!-- 启动类型 -->host="true|false"<!-- 是否为宿主组件 -->></SLM:component>

属性说明:

属性说明
name字符串组件唯一名称
defaultenable/disable默认是否启用
launchcritical关键组件
builtin内建命令(见 7.4 节)
session会话启动
pathname路径名启动
hosttrue/false宿主组件
command

定义要执行的命令:

<SLM:commandlaunch="critical|builtin|pathname|session">/path/to/command</SLM:command>
返回列表