当前位置: 首页 > news >正文

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>
http://www.gsyq.cn/news/1509244.html

相关文章:

  • 从KF_GINS到PPP/INS:一个GNSS/INS初学者的紧组合算法实践笔记(附i2NAV开源代码解读)
  • 3步突破消息屏障:RevokeMsgPatcher智能防撤回技术解密
  • 1.1 | 小规模散户入门:会说话的小龙虾系统与CoPaw AI智能体全解析
  • 从诊断报文收发看本质:深度拆解Autosar DSL模块在Vector工具中的通信链路
  • 1039出口收汇不规范,会带来哪些风险?一个广州出口商的合规整改经历 | 真实整改复盘 - 欢欢在创业
  • 甲方统一为火山引擎,承接字节全系业务技术诉求;乙方为阿里云,输出闲置顶级算力、全球节点、存储灾备、网络传输资源。 核心定位均为能力补位兜底:弥补字节自研集群在峰值并发、全球覆盖、极端故障、合规灾备上的
  • 不止于5G:拆解CEVA-BX2架构,看它如何赋能智能音频与边缘AI应用
  • 从MATLAB内存管理机制讲起:为什么‘zeros(1e6,1)’比‘[]’快这么多?
  • 041、Edge Impulse的C++ SDK与API详解
  • 5步掌握FanControl:Windows风扇智能温控终极指南
  • 用了1039却被税务关注,通常是哪些环节出了问题? | 根因诊断与合规路径 - 欢欢在创业
  • CMU CSAPP Lab7五级流水线完整工程包(含pipe-full.hcl、测试程序与仿真工具)
  • 1039市场采购买单组货听起来方便,背后有什么风险?| 8个容易踩的坑 - 欢欢在创业
  • 066、Claude Code 记忆系统架构:MEMORY.md 索引与 memory 文件的持久化机制
  • 北邮计算机网络课设:C++写的DNS中继工具,支持域名拦截和上游转发
  • 开源插件架构设计:实现跨平台3D动画工作流的5大技术突破
  • 终极VRChat社交管理工具:VRCX如何彻底改变你的虚拟社交体验
  • 氧化钇:半导体制造中的“幕后材料”
  • 开发日志(十):RAG 的智能菜单助手设计
  • 网络安全干货:护网行动实战经验分享
  • 如何用LinkSwift快速获取九大网盘直链下载地址:告别限速烦恼
  • 荆门市黄金回收白银回收铂金回收彩金回收靠谱门店TOP排行榜及联系方式地址电话+诚信店铺推荐 - 大熊猫898989
  • Qdrant源码与算法
  • 荆州市黄金回收白银回收铂金回收彩金回收靠谱门店TOP排行榜及联系方式地址电话+诚信店铺推荐 - 大熊猫898989
  • XGP存档提取终极指南:3分钟释放你的游戏进度自由
  • PyTorch工程化起点:可复现、可扩展、可交付的训练模板
  • 景德镇市黄金回收白银回收铂金回收彩金回收靠谱门店TOP排行榜及联系方式地址电话+诚信店铺推荐 - 大熊猫898989
  • 从一段DXF数据看懂CAD图元结构:手把手教你用VBA解析Polyline的组码含义
  • 探讨乌兰察布广告标识定制公司,靠谱推荐费用多少 - myqiye
  • 042、Edge Impulse的实时推理与数据流