原文:
slmctl
控制和查询系统启动和监控(slm)
语法:
slmctl [-n subsystem_path] "command [component]"...
运行环境:
QNX Neutrino
参数:
-
-n
subsystem_path设置客户端应用程序写入控制和查询命令的接入点。应该与slm选项-n指定的路径相匹配。默认是/dev/slm.
-
command [component]
用引号括起来的字符串,用于指定控件或查询命令,还可指定组件或模块名。有关描述,请参见控制和查询命令。
描述:
客户端应用程序可以通过slmctl实用程序(通过命令行或交互式输入)发送SLM控制和查询命令,或者直接将命令写入 /dev/slm 接口。
只有系统超级用户(UID 0)才能执行该命令。
控制与查询命令
控制命令可以启动、停止或重启指定的模块或组件。启动组件时,SLM启动所有依赖项(尚未运行的),并根据需要等待它们。当您停止一个组件时,SLM首先停止任何依赖项。重启是停止和启动操作的顺序:
-
组件的依赖项被停止。
-
组件本身停止。
-
组件已启动。
-
可以启动的组件依赖项已经启动。
通过查询命令可以获取组件的当前状态和依赖关系信息。
控制命令command
有关选项说明,请参阅“命令选项”
-
start [-dv]
启动指定的组件。
-
stop [-sv]
停止指定的组件。
-
restart [-dsv]
停止,然后启动指定的组件。
查询命令Query commands
有关选项说明,请参阅“命令选项”
-
active -v
列出所有活动的组件。
-
dead [-v]
列出所有状态为“
DEAD
”的组件。 -
inactive [-v]
列出所有不活动的组件。
-
initialized [-v]
列出状态为
INITIALIZED
.的所有组件 -
listall [-v]
列出所有组件及其状态。
-
needs [-v component]
列出此组件所依赖的所有组件。
-
starting [-v]
列出状态为的所有组件
STARTING
. -
stopping [-v]
列出状态为的所有组件
STOPPING
. -
usedby [-v component]
列出依赖于此组件的所有组件。
-
waiting [-v]
列出状态为
WAITING
.的所有组件
命令选项Command options
-
-d
调试模式:使用调试参数列表启动组件。
-
-p pid
仅显示具有指定ID的进程的信息。仅用于主动语态。
-
-s
无状态:当停止组件时,忽略任何无状态依赖。
-
-v
详细说明:给出响应命令时执行的每个操作的详细信息。
例子:Examples
slmctl "start console"
slmctl "start -d pps"
slmctl "stop ssh" "start network-init"
slmctl "active -p 1234"
指令例子Command example
在执行写入/dev/slm的命令后,可以从相同的文件描述符中读取结果。下面是一个简单的例子(没有错误处理):
int slm;
char text[128];
slm = open("/dev/slm", O_RDWR);
write(slm, "start -v all", 12);
while (read(slm, text, sizeof(text)) > 0)
printf("%s\n", text);
close(slm);
输出Output
slmctl实用程序从查询命令而不是控制命令发出输出。查询命令查询SLM组件的当前状态,可以立即返回完整的信息集。
控制命令会导致执行一系列动作,从理论上讲,这些动作可能会花费很长时间。为了避免导致slmctl在等待SLM生成输出时“挂起”,SLM使用SLM启动时指定的详细级别将控制命令的输出记录到stdout或系统记录器。对于查询命令,slmctl实用程序显示与指定查询对应的组件列表(例如,对于活动查询,显示活动组件列表),每行上有一个组件名称。如果指定-v,则每一行显示附加信息,格式如下:
命令激活状态[pid]
where:
-
指令是在配置文件中为组件指定的命令字符串。
-
active is either
ACTIVE
orINACTIVE
. -
State是以下值之一:
DEAD
,INITIALIZED
,STARTING
,STOPPING
,WAITING
. -
pid是关联的运行进程的进程号(如果组件有)。