日期:2014-05-16  浏览次数:20699 次

求助,在rc.local中添加自己的可执行程序导致系统无法进入X window
小弟新手一枚,用virtualBox装的fedora14,昨天写了一个很简单的测试程序,编译之后,在rc.local中添加了该程序的执行路径"/var/app",重启之后发现只是到进度条结束,就再也进不了X window界面了,程序如下:
int main()
{
while(1)
{
sleep(5);
}
}

我修改了一下程序,发现如果没有while(1)循环,就没问题,可是我不明白的是我启动的是一个进程,怎么会影响到X window的启动呢?请各位前辈帮忙解释一下这个问题,小弟先行谢过了

------解决方案--------------------
启动流程会顺序执行rc5.d下S打头的脚本,你的程序前台不退出,脚本也不会退出,当然会导致启动流程无法完成,你可以在你的程序调用时加上&符号把程序转后台就行了
------解决方案--------------------
引用:
Quote: 引用:

启动流程会顺序执行rc5.d下S打头的脚本,你的程序前台不退出,脚本也不会退出,当然会导致启动流程无法完成,你可以在你的程序调用时加上&符号把程序转后台就行了

添加了&符号之后确实可以了,谢谢你的回答。我不明白的地方是:内核启动之后就会启动init进程,init进程来执行rc.local,我发现rc.local其实也是一个shell脚本,他启动别的进程怎么会影响到init进程继续往下执行呢?这不是相当于是init的一个子进程吗?还望指教~

就像我们用system启动一个进程一样,system会在该进程退出或转后台后才会返回,shell脚本里面的启动的进程也是一样