首页 > 解决方案 > 是否可以以编程方式设置当前的 Linux 运行级别?

问题描述

没有脱壳或调用 exec,有没有办法以编程方式请求运行级别更改?

标签: clinuxrunlevel

解决方案


Sys-V init 在 /run/initctl 打开一个先进先出。您可以发送的命令在 initreq.h 中“描述”(很可能没有安装在您的系统上,但可以在 init 的源代码中找到)。

因此,您所要做的就是打开 /run/initctl 并将请求写入其中。

struct init_request request= {.magic = INIT_MAGIC, 
                              .cmd = INIT_CMD_START, 
                              .runlevel= [your_run_level], 
                              .sleeptime = 5  //should sleep 5s between term and kill
                             };

推荐阅读