当前位置: 技术问答>linux和unix
如何在Linux下用C来实现重启系统的功能
来源: 互联网 发布时间:2015-10-18
本文导语: 各位大虾,请教一个弱弱的问题,如何在Linux下用C来实现重启系统的功能,我编了一个程序如下 int main(int argc, char *argv[]) { int pid; if((pid=fork())!=0) { exit(0); } setsid(); printf("start rebootn"); execlp("/usr/bin","reboot"); ...
各位大虾,请教一个弱弱的问题,如何在Linux下用C来实现重启系统的功能,我编了一个程序如下
int main(int argc, char *argv[])
{
int pid;
if((pid=fork())!=0)
{
exit(0);
}
setsid();
printf("start rebootn");
execlp("/usr/bin","reboot");
perror("reboot");
}
结果提示权限不够,而我是用root登陆的,我在命令行状态下敲/usr/bin/reboot则能重启,请教如何解决此问题。
int main(int argc, char *argv[])
{
int pid;
if((pid=fork())!=0)
{
exit(0);
}
setsid();
printf("start rebootn");
execlp("/usr/bin","reboot");
perror("reboot");
}
结果提示权限不够,而我是用root登陆的,我在命令行状态下敲/usr/bin/reboot则能重启,请教如何解决此问题。
|
用 system("init 6") ; 试试
|
reboot是通过向/dev/initctl写入命令实现重启的。
源码包
http://www.fedoraproject.org.cn/downloads/core/4/SRPMS/SysVinit-2.85-39.src.rpm
解压
rpm2cpio SysVinit-2.85-39.src.rpm | cpio -id
源码包
http://www.fedoraproject.org.cn/downloads/core/4/SRPMS/SysVinit-2.85-39.src.rpm
解压
rpm2cpio SysVinit-2.85-39.src.rpm | cpio -id