正常开始时,rcS最后exec /etc/init.d/rcS,这将运行/etc/rcS.d下的所有脚本,
完成后运行 rc-defalut中的 telinit 2进入图形界面。这是正常流程
然后在单用户时,/proc/cmdline中有了single选项,所以启动流程是:
rcS最后exec /etc/init.d/rcS,这将运行/etc/rcS.d下的所有脚本,
完成后,rc-defalut发现有single选项,去执行telinit S------------这正是我不能理解的,因为再去执行telinit S时按理应该再一次运行/etc/rcS.d下的所有脚本。而上面已经运行过了啊.。请高手指教!!
按照我的理解,在单用户时,rc-defalut发现有single选项,去执行telinit 1,--------而不是去执行telinit S,
这才是sysv init的正常流程。改正后也是可以工作的。
然而为什么不改也可以工作呢?请指教!!
upstart: About rcS & rc-default
-
- 帖子: 5
- 注册时间: 2008-10-21 22:18
-
- 帖子: 5
- 注册时间: 2008-10-21 22:18
Re: upstart: About rcS & rc-default
自己回答一下:
>完成后,rc-defalut发现有single选项,去执行telinit S------------这正是我不能理解的,因为再去执行telinit S时按理应该再一次运行/etc/rcS.d下的所有脚本。
telinit S时不会进入/etc/rcS.d执行,因为telinit S 只是产生一个runlevel事件,而这个事件是在rcS-sulogin中捕捉的,代码如下:start on runlevel S
所以实际上会进入rcS-sulogin中执行,并进入了单用户模式。
所以实际上ubuntu中,运行级1除了手动进入外,系统是不会自己进入的。
>完成后,rc-defalut发现有single选项,去执行telinit S------------这正是我不能理解的,因为再去执行telinit S时按理应该再一次运行/etc/rcS.d下的所有脚本。
telinit S时不会进入/etc/rcS.d执行,因为telinit S 只是产生一个runlevel事件,而这个事件是在rcS-sulogin中捕捉的,代码如下:start on runlevel S
所以实际上会进入rcS-sulogin中执行,并进入了单用户模式。
所以实际上ubuntu中,运行级1除了手动进入外,系统是不会自己进入的。