news 2026/6/12 7:55:23

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 7:55:18

青岛特色餐厅实测!老牌门店与网红店撸串体验大不同,本地人超爱

青岛&#xff0c;这座美丽的海滨城市&#xff0c;不仅有迷人的海景&#xff0c;更有着独具特色的美食文化。在青岛的美食版图中&#xff0c;烧烤占据着重要的一席之地。青岛的烧烤融合了当地丰富的海鲜资源&#xff0c;形成了独特的风味&#xff0c;深受本地人和游客的喜爱。然…

作者头像 李华
网站建设 2026/6/12 7:54:49

银河系中心分子气体与尘埃发射关联研究

1. 银河系中心分子气体与尘埃发射的关联研究 在银河系中心区域&#xff08;Central Molecular Zone, CMZ&#xff09;&#xff0c;分子气体和尘埃发射是研究星际介质物理性质和恒星形成过程的两大重要观测手段。作为一名长期从事银河系中心研究的观测天文学家&#xff0c;我想分…

作者头像 李华
网站建设 2026/6/12 7:54:07

运输成本空间与L1嵌入:理论与算法应用

1. 运输成本空间与L1嵌入的理论基础运输成本空间&#xff08;Transportation Cost Space&#xff09;是现代度量几何与算法设计交叉领域的重要研究对象。给定有限度量空间(X,d)&#xff0c;其运输成本空间TC(X)定义为X上总质量为零的符号测度构成的线性空间&#xff0c;配备由最…

作者头像 李华
网站建设 2026/6/12 7:54:06

阜南GEO企业运营痛点

一、用户痛点在界首&#xff0c;很多企业都想通过 GEO 优化来提升自己的线上曝光度和业务量。但大家心里都有不少担忧。怕品质不好&#xff0c;优化效果达不到预期&#xff1b;怕售后没保证&#xff0c;出了问题没人管&#xff1b;怕设计不好看&#xff0c;影响企业形象&#x…

作者头像 李华
网站建设 2026/6/12 7:52:45

51单片机HCS301滚动码遥控解码工程包(Keil C51可直接编译)

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;专为51单片机设计的HCS301滚动码解码实现&#xff0c;完整支持Keeloq算法解密与同步校验。包含底层射频接收驱动&#xff08;rf.c&#xff09;、中断管理&#xff08;keil_int.c&#xff09;、核心解密模块&…

作者头像 李华