QNX SLM介紹

QNX SLM

SLM是Qnx中用來加載Application的組件,它可以監控Application行為(比如異常退出時重新Application拉起)、控制Application間的啟動時序。
QNX的SLM與Android RC文件類似。
下面摘自QNX官網介紹

System launch and monitor: launch complex applications consisting of many processes that must be started in a specific order

QNX SLM官網鏈接:
https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.utilities/topic/s/slm.html

使用SLM,主要包括兩部分。

  • SLM命令,命令支持語法如下
slm [-avV] [-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
  • SLM配置文件(*.slm),如QNX官網給出的例子
<SLM:system><SLM:component name="io-pkt"><SLM:command>/sbin/io-pkt-v6-hc</SLM:command><SLM:args>-ptcpip stacksize=8192</SLM:args><SLM:waitfor wait="pathname">/dev/socket</SLM:waitfor></SLM:component><SLM:component name="ifconfig"><SLM:depend>io-pkt</SLM:depend><SLM:command>/sbin/ifconfig</SLM:command><SLM:args>en0 192.168.1.5 up</SLM:args><SLM:waitfor wait="exits"></SLM:waitfor></SLM:component><SLM:module name="net-setup"><SLM:member>io-pkt</SLM:member><SLM:member>ifconfig</SLM:member></SLM:module>
</SLM:system>

SLM命令

關于SLM支持的全部命令的解釋,可以參考QNX官網。
這里對其常用的幾個命令項說明一下。
-p priority:設置線程優先級,就是被SLM拉起的Application的線程優先級。默認是30,數字越大優先級越高。

-R frequency: 被SLM拉起的Application異常退出后,SLM嘗試重新拉起(Recover)的Application的頻率。單位是秒、分,或者小時。比如2/min(一分鐘兩次)

-v SLM啟動Application輸出log的級別。

例子:
通過slm啟動Application,Application配置文件是slm-config-linduo.xml
配置項:線程優先級(10)、異常退出后每分鐘嘗試啟動(20次)、默認輸出WarningMessage。

slm -v -p 10 -R 20/min /etc/slm/config/slm-config-linduo.xml

SLM配置文件

SLM的配置文件,是xml的格式。比如上面例子中的slm-config-linduo.xml。
官網給出了關于配置文件的詳細說明。
https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.utilities/topic/s/slm.html
以下面的例子解釋一下使用的字段:該端配置文件的主要功能是:

  • 以/mnt/apps/linduo作為WorkDir
  • 通過SLM啟動my_linduo這個程序
  • -線程優先級有20,調度方式為(SCHED_RR)
  • 程序的Type類型(跟QNX安全有關)為default_root_t(就是root權限)
  • my_linduo程序異常退出時進行重啟操作(restart)-
  • Runmask表示可以跑在CPU哪個核上,7表示CPUs 0、1、2 (0111)。
<SLM:system><!-- my_linduo--><SLM:component name="my_linduo"><SLM:cd>/mnt/apps/linduo/</SLM:cd><SLM:command>/mnt/apps/linduo/my_linduo</SLM:command><SLM:priority>20r</SLM:priority><SLM:type>default_root_t</SLM:type><SLM:repair>restart</SLM:repair><SLM:runmask>7</SLM:runmask></SLM:component></SLM:system>

這里要特殊說明的一個寫法是SLM:depend和SLM:waitfor,關于這倆標簽的用法,很容易產生誤解。
先看下面的例子

<SLM:system><SLM:component name="io-pkt"><SLM:command>/sbin/io-pkt-v6-hc</SLM:command><SLM:args>-ptcpip stacksize=8192</SLM:args><SLM:waitfor wait="delay">5000</SLM:waitfor></SLM:component><SLM:component name="ifconfig"><SLM:depend>io-pkt</SLM:depend><SLM:command>/sbin/ifconfig</SLM:command><SLM:args>en0 192.168.1.5 up</SLM:args></SLM:component>
</SLM:system>

ifconfig依賴 io-pkt。所以會先啟動 io-pkt。這個時候io-pkt對應的/sbin/io-pkt-v6-hc就執行了。
然后,等待5秒后,才會啟動ifconfig。
所以,waitfor不是先等待,然后才執行。而是先把io-pkt啟動后,再等待5秒。
關于SLM配置文件的具體寫法,可以參考QNX官網。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11489.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11489.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11489.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis日常維護流程及技巧:確保穩定性與性能

目錄 一、監控和報警設置 1.實時監控&#xff1a;洞察Redis的脈搏 &#xff08;1&#xff09;. 資源使用監控 &#xff08;2&#xff09;. 數據訪問模式監控 &#xff08;3&#xff09;. 持久化監控 &#xff08;4&#xff09;. 客戶端連接 2.報警機制&#xff1a;快速響…

標準Modbus TCP雙網口開關量模塊

M140E以太網遠程I/O無線數據采集模塊是一款工業級、隔離設計、高可靠性、高穩定性和高精度數據采集模塊&#xff0c;嵌入式32位高性能微處理器MCU&#xff0c;集成2路工業10/100M自適應以太網模塊里面。提供多種I/O&#xff0c;支持標準Modbus TCP&#xff0c;可集成到SCADA、O…

Spring STOMP-連接到消息代理

STOMP 代理中繼維護一個與消息代理的“系統”TCP 連接。這個連接僅用于來自服務器端應用程序的消息&#xff0c;不用于接收消息。您可以為此連接配置STOMP憑據&#xff08;即STOMP幀的login和passcode頭部&#xff09;。這在XML命名空間和Java配置中都以systemLogin和systemPas…

CentOs搭建Kubernetes集群

kubeadm minikube 還是太“迷你”了&#xff0c;方便的同時也隱藏了很多細節&#xff0c;離真正生產環境里的計算集群有一些差距&#xff0c;畢竟許多需求、任務只有在多節點的大集群里才能夠遇到&#xff0c;相比起來&#xff0c;minikube 真的只能算是一個“玩具”。 Kuber…

spring基礎使用(案例)

基于xml使用&#xff1a; 準備&#xff1a; 1.Dao層&#xff08;接口&#xff09;&#xff1a; public interface UserDao {public void save(); } 1.1 Dao層&#xff08;實現類&#xff09;&#xff1a; public class UserDaoIim implements UserDao {Overridepublic vo…

Day53代碼隨想錄動態規劃part13:300.最長遞增子序列、674. 最長連續遞增序列、718. 最長重復子數組

Day52 動態規劃part13 300.最長遞增子序列 leetcode鏈接&#xff1a;300. 最長遞增子序列 - 力扣&#xff08;LeetCode&#xff09; 題意&#xff1a;給你一個整數數組 nums &#xff0c;找到其中最長嚴格遞增子序列的長度。子序列是由數組派生而來的序列&#xff0c;刪除&a…

23種設計模式(軟考中級 軟件設計師)

設計模式 23個設計模式&#xff0c;23個意圖 1. 設計模式概要 設計模式的核心在于提供了相關問題的解決方案&#xff0c;使得人們可以更加簡單方便的復用成功的設計和體系結構 設計模式的類別 創建型結構型行為型類工廠方法模式適配器模式&#xff08;類&#xff09;解釋器模…

物聯網五層架構分析

物聯網五層架構分析 隨著科技的迅速發展&#xff0c;物聯網&#xff08;IoT&#xff09;作為日常生活中不可或缺的一部分&#xff0c;已融入人們的生活和工作中。物聯網五層架構&#xff0c;包括感知層、網絡層、數據層、應用層和業務層&#xff0c;扮演著關鍵的角色。 感知層 …

網絡庫-libcurl介紹

1.簡介 libcurl 是一個功能強大的庫&#xff0c;支持多種協議&#xff0c;用于數據傳輸。它廣泛應用于實現網絡操作&#xff0c;如HTTP、HTTPS、FTP、FTPS、SCP、SFTP等。libcurl 提供了豐富的 API&#xff0c;可以在多種編程語言中使用。 libcurl 主要特點 支持多種協議&am…

FreeRTOS計數型信號量

目錄 一、計數型信號量簡介 二、計數型信號量相關API 1、創建計數型信號量 2、釋放計數型信號量 3、獲取計數型信號量 4、獲取計數型信號量的計數值 三、計數型信號量實操 1、實驗需求 2、CubeMX配置 3、代碼實現 一、計數型信號量簡介 ①取值只有0與1兩種狀態的信號…

基于Springboot的滴答拍攝影

基于SpringbootVue的滴答拍攝影設計與實現 開發語言&#xff1a;Java數據庫&#xff1a;MySQL技術&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系統展示 用戶登錄 首頁 攝影作品 攝影服務 攝影論壇 后臺登錄 后臺首頁 用戶管理 攝影師管理 攝影作…

YOLOv8小白中的小白安裝環境教程!沒一個字廢話,看一遍不踩坑!

文章目錄 去哪里下代碼&#xff1f;怎么下代碼&#xff1f;怎么裝環境&#xff1f;命令行界面(CLI)指令和Python腳本區別&#xff1f;附錄1 conda常用指令附錄2 git常用指令附錄3 項目代碼文件作用 去哪里下代碼&#xff1f; 下載代碼請大家直接去 YOLOv8的官方倉庫下載&#…

HTTP和HTTPS的區別和聯系

目錄 1. 簡介2. TLS 握手過程3. 常見的加密算法3.1 對稱加密算法3.2 非對稱加密算法 1. 簡介 HTTPS在HTTP的基礎上引入了一個TLS層&#xff0c;采用密文進行傳輸&#xff0c;結合對稱加密技術和非對稱加密技術來實現數據的安全性和完整性。 客戶端會生成隨機密鑰&#xff0c;…

讓 計算機 將 數學 公式 表達式 的計算過程繪制出來 【mathematical-expression(MAE)】

目錄 文章目錄 目錄介紹開始實戰引入數學表達式計算庫引入流程圖代碼生成庫開始進行生成 介紹 大家好 今天我們來分享一個新知識&#xff0c;將數學表達式的整個計算過程&#xff0c;以及計算繁多結果在 Java 中繪制出來&#xff0c;計算機中的數學表達式計算的功能很常見了&a…

react 對輸入做出反應與狀態

React 提供了一種操作 UI 的聲明性方式。您無需直接操作 UI 的各個部分&#xff0c;而是描述組件可能處于的不同狀態&#xff0c;并在它們之間切換以響應用戶輸入。 聲明式 UI 與命令式 UI 的比較 在設計 UI 交互時&#xff0c;可能會考慮 UI 如何響應用戶操作而更改。考慮一…

[C語言]總覽

目錄 1. 框架、默認數據類型 2. 分支結構 &#xff08;1&#xff09;. if ... else ... &#xff08;2&#xff09;. switch ... case ... 3. 循環結構 &#xff08;1&#xff09;. while &#xff08;2&#xff09;. for &#xff08;3&#xff09;. do ... while 4. 函…

區塊鏈的跨鏈交互:從學校間交流看跨鏈技術

區塊鏈是一種去中心化的分布式賬本技術&#xff0c;它通過加密學和共識機制來確保數據的安全性和不可篡改性。每個區塊鏈就像一所獨立的學校&#xff0c;有自己的制度、學生和重點專業。它們各自運行&#xff0c;有時在同一領域展開不同的活動。隨著區塊鏈技術的不斷發展&#…

【組合博弈】Outcome Classes

Outcome Classes 一個游戲 G G G的outcome函數代表這個游戲最終的結果&#xff0c;就是說這個游戲最后的贏家是誰。outcome函數是一個從游戲 G G G映射到四個結果的函數&#xff0c;四個結果分別是 L , R , P , N L, R, P, N L,R,P,N。意義如下表&#xff1a; ClassNameDefin…

學習筆記:Adaptive Platform(AP)適配到RTOS

一、背景 1、AP版本 Adaptive Platform AUTOSAR R20-11版本標準支持C14。CM模塊支持DDS、SOME/IP協議 2、RTOS RTOS-A核&#xff0c;當前完全支持POSIX PSE51、POSIX PSE52接口&#xff0c;POSIX PSE53部分支持&#xff0c;POSIX PSE54基本不支持。詳細接口參考&#xff1a…