繁体   English   中英

从程序重启linux

[英]reboot linux from a program

之前已经问过这个问题: 如何从C ++程序中重启Linux?

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

这是我的问题:

我有一个硬件上的程序。 我可以以root用户身份登录并运行它而不会出现任何问题。 但是,如果我以root priveleges身份登录为其他用户,程序执行正常,但不会重新启动。 它只关闭当前的Telnet会话。

要重新启动,我使用了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

如果我以服务身份登录,将运行“script”。 用户有一个列表选项可供选择。 其中一个选项是运行上述程序。

编辑:

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

首先,以“root priveleges的不同用户”身份登录系统,如果系统重启,则执行'init 6'?

是的:使用系统(“init 6”); 在你的程序中。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM