Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 从程序重新启动linux_C_Linux_Reboot - Fatal编程技术网

C 从程序重新启动linux

C 从程序重新启动linux,c,linux,reboot,C,Linux,Reboot,这个问题以前有人问过: 然而,没有一个答案对我有效 我的问题是: 我在一个硬件上有一个程序。我可以以root用户身份登录并运行它,没有任何问题。但是,如果我以具有root权限的其他用户身份登录,程序将正常执行,但不会像应该的那样重新启动。它只关闭当前的Telnet会话 要重新启动,我使用了系统(重新启动)。 到目前为止,我已经尝试: sync(); reboot(RB_POWER_OFF); 及 无济于事 (我不确定我是否正确使用了execl。这是我第一次使用它。如果我弄错了,请纠正我) 任何

这个问题以前有人问过:

然而,没有一个答案对我有效

我的问题是:

我在一个硬件上有一个程序。我可以以root用户身份登录并运行它,没有任何问题。但是,如果我以具有root权限的其他用户身份登录,程序将正常执行,但不会像应该的那样重新启动。它只关闭当前的Telnet会话

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

sync();
reboot(RB_POWER_OFF);

无济于事

(我不确定我是否正确使用了
execl
。这是我第一次使用它。如果我弄错了,请纠正我)

任何帮助都将不胜感激

编辑:

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

编辑:


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

首先,以“具有根权限的其他用户”的身份登录到您的系统,,并执行“init 6”,如果系统已重新启动

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


否:您有安全问题,首先必须修复该问题。

您为
execl()
提供了一个相对路径。这仅在您的工作目录为
/
时有效,而它可能不是。也许可以尝试
/sbin/reboot
?拥有root权限的不同用户是什么?我认为这是错误的。但是,正确的答案是将程序设置为root。因此程序总是以根权限运行。请注意此文件的安全问题。@glglglgl抱歉,这是一个打字错误。Corrected@iveqy由于OP使用telnet(!),因此根本不存在安全问题。@iveqy我提供了更多信息。检查我的编辑
execl("/sbin/reboot","reboot",NULL,NULL);
/data/local/sbin # cat /etc/passwd
root:x:0:0:root:/root:/bin/sh
service:54zljpSAe:0:0:root:/root:/data/local/sbin/script