gpt4 book ai didi

c - 从程序重启 linux

转载 作者:IT王子 更新时间:2023-10-29 00:38:40 25 4
gpt4 key购买 nike

这个问题之前有人问过:How to restart Linux from inside a C++ program?

但是,似乎没有一个答案对我有用。

这是我的问题:

我在一个硬件上有一个程序。我可以以 root 身份登录并毫无问题地运行它。但是,如果我以具有 root 权限的不同用户身份登录,程序可以正常执行,但不会按预期重新启动。它只会关闭当前的 Telnet session 。

要重新启动,我使用了system(reboot)。到目前为止我已经尝试过:

sync();
reboot(RB_POWER_OFF);

execl("/sbin/reboot","reboot",NULL,NULL);

没用。

(我不确定,我是否正确使用了execl。我是第一次使用它,如果我搞砸了请指正)。

如有任何帮助,我们将不胜感激。

编辑:

/data/local/sbin # cat /etc/passwd
root:x:0:0:root:/root:/bin/sh
service:54zljpSAe:0:0:root:/root:/data/local/sbin/script

如果我作为服务登录,“脚本”将运行。用户有一个列表选项可供选择。其中一种选择是运行上述程序。

编辑:

另外值得一提的是:脚本中的一个选项是重启系统。如果从脚本内部调用,它会起作用。但我想从程序中调用重启。

最佳答案

首先,以“具有 root 权限的不同用户” 身份登录到您的系统,如果系统已重新启动,则执行“init 6”?

是的:使用 system("init 6");在你的程序中。

不:你有安全问题,首先你必须解决它。

关于c - 从程序重启 linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com