c - 是否可以以编程方式设置当前的 Linux 运行级别?
问题描述
没有脱壳或调用 exec,有没有办法以编程方式请求运行级别更改?
解决方案
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
};
推荐阅读
- python - 计算 RFM 值的分位数 (pd.qcut)
- nuxt.js - 如何删除 Nuxt.js 中的第一个加载圆 div (id="nuxt-loading")?
- angular - Angular 8 - 通用饼干(SSR)
- python - 如何将 TimeDistributed 层与卷积层一起使用?
- python - 用于居中绘制对象的 Python 坐标系问题
- oauth - 将 OAuth 身份验证从移动应用程序传输到 webview
- php - Group-By 不使用 Laravel Eloquent 中的 Order-By
- asp.net-web-api2 - 如何防止 asp.net web api 2 允许类似于 MVC RequestValidation 的 html 和脚本?
- java - Java 8 并行流机制
- r - 你如何使情节误差条遵循色标?