QNX----驱动篇

QNX 进程保活方案

2023-08-30  本文已影响0人  巴菲伟

一、读取ham-monitor.conf配置文件进行保活

1、读取配置文件流程

ham-monitor.conf会被system_monitor读取,system_monitor会感知到哪些模块需要被HAM监听,然后system_monitor会根据该配置表格里面的进程名字信息向ham进程里面注册。

2、ham-monitor.conf 配置文件解析

https://www.jianshu.com/writer#/notebooks/34147528/notes/114647667

二、通过slm命令去实现

1、常用qnx基本命令的介绍

pidin arg(arguments) : 会把启动进程时参数一并显示出来

pidin fam(family) : 会把启动进程路径一并显示出来

pidin flags : 会把启动进程标志位一并显示出来

pidin pmem : 会把启动进程占用QNX空间大小一并显示出来(可以作为未来优化方向)

slay + 进程名字 slay carservice(杀死carservice进程)、slay pipe (杀死pipe进程)

slog2info -c : 清除日志

slog2info -w : 实时打印qnx日志信息

slm -vvvvv -b 5 -R 15/min -t 500 + xml文件位置

2、命令使用手册

https://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.qnxsdp.nav/topic/bookset.html

3、slm保活pipe进程方式

#include "IFS_Base.h"
static const char* slm_arg [] = {
    "slm",
    "-vvvvv",
    "-r",
    "-b",
    "5",
    "-R",
    "15/min",
    "-t",
    "500",
    combpath(ifs_base, /etc/system/slm/config/slm.xml),
    NULL,
};

static const struct aaction slm = {
    .type = TYPE_CMD,
    .c = {
        .flags = FLAG_BACKGROUND,
        .path = "slm",
        .arg = slm_arg,
        .secpol_type = "slm_t",
        .rmasks = 0xFF,
        .uid = SLM_UID,
        .gid = SLM_GID,
    },
};

4、自定保活系统

上一篇 下一篇

猜你喜欢

热点阅读