我有一个 Qt 4 GUI,我需要在下拉菜单中有一个选项,允许用户选择重新启动计算机。我意识到这似乎与以其他方式重新启动计算机的能力无关,但选择需要留在那里。我尝试使用 system() 调用以下内容:
- suid-root shell 脚本
- 一个非 suid 的 shell 脚本
- suid-root 二进制程序
所有这些都只是导致
reboot: must be superuser要打印。使用 system() 直接调用 reboot 做同样的事情。我并不是特别喜欢使用 system() 来执行此操作,但它似乎是最直接的选择。
如何从 GUI 重新启动系统?
最佳答案
reboot
功能在 Linux Programmer's Manual 中描述。 .在 glibc 下,您可以传递 RB_AUTOBOOT
宏常量来执行重启。
请注意,如果 reboot
之前没有调用 sync
,数据可能会丢失。
在 Linux 中使用 glibc:
#include <unistd.h>
#include <sys/reboot.h>
sync();
reboot(RB_AUTOBOOT);
关于c++ - 如何从 C++ 程序内部重新启动 Linux?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678766/