Linux-sysvinit-flow
来源:互联网 发布:安卓视频直播app源码 编辑:程序博客网 时间:2024/06/05 08:00
diff --git a/init.c b/init.c
index 27532ad..e206d97 100644
--- a/init.c
+++ b/init.c
@@ -1634,6 +1634,17 @@ void start_if_needed(void)
/* See if we have to start it up */
delete = 1;
+ // oem-start
+ // SIGCHLD -> ch->flags &= ~(RUNNING|ZOMBIE|WAITING);
+ // 1) ch->rlevel = "#", runlevel = '#'
+ // exec si::sysinit:/etc/init.d/rcS -> /etc/rcS.d/Sxx
+ // 2) ch->rlevel = "*5*", runlevel = '5'
+ // exec l5:5:wait:/etc/init.d/rc 5 -> /etc/rc5.d/Sxx
+ // exec rmts:2345:respawn:/sbin/rmt_storage
+ // exec tftp:2345:respawn:/sbin/tftp_server
+ // exec m1:5:wait:rm -f /var/run/qbi_session_active
+ // exec m2:5:respawn:/usr/bin/mbimd
+ // oem-end
if (strchr(ch->rlevel, runlevel) ||
((ch->flags & DEMAND) && !strchr("#*Ss", runlevel))) {
startup(ch);
@@ -2334,6 +2345,9 @@ void boot_transitions()
write_utmp_wtmp("reboot", "~~", 0, BOOT_TIME, "~");
/* Get our run level */
+ // oem-start
+ // newlevel = '5' by default
+ // oem-end
newlevel = dfl_level ? dfl_level : get_init_default();
if (newlevel == 'S') {
runlevel = newlevel;
@@ -2346,6 +2360,9 @@ void boot_transitions()
INITDBG(L_VB, "BOOT -> NORMAL");
if (runlevel != newlevel)
loglevel = newlevel;
+ // oem-start
+ // runlevel = '5'
+ // oem-end
runlevel = newlevel;
did_boot = 1;
warn = 1;
@@ -2633,6 +2650,11 @@ void init_main(void)
*/
setenv("PATH", PATH_DEFAULT, 0 /* Don't overwrite */);
}
+ // oem-start
+ // SIGCHLD -> ch->flags &= ~(RUNNING|ZOMBIE|WAITING);
+ // 1) ch->rlevel = "#", runlevel = '#'
+ // exec si::sysinit:/etc/init.d/rcS -> /etc/rcS.d/Sxx
+ // oem-end
start_if_needed();
while(1) {
@@ -2666,6 +2688,15 @@ void init_main(void)
process_signals();
/* See what we need to start up (again) */
+ // oem-start
+ // SIGCHLD -> ch->flags &= ~(RUNNING|ZOMBIE|WAITING);
+ // 2) ch->rlevel = "*5*", runlevel = '5'
+ // exec l5:5:wait:/etc/init.d/rc 5 -> /etc/rc5.d/Sxx
+ // exec rmts:2345:respawn:/sbin/rmt_storage
+ // exec tftp:2345:respawn:/sbin/tftp_server
+ // exec m1:5:wait:rm -f /var/run/qbi_session_active
+ // exec m2:5:respawn:/usr/bin/mbimd
+ // oem-end
start_if_needed();
}
/*NOTREACHED*/
index 27532ad..e206d97 100644
--- a/init.c
+++ b/init.c
@@ -1634,6 +1634,17 @@ void start_if_needed(void)
/* See if we have to start it up */
delete = 1;
+ // oem-start
+ // SIGCHLD -> ch->flags &= ~(RUNNING|ZOMBIE|WAITING);
+ // 1) ch->rlevel = "#", runlevel = '#'
+ // exec si::sysinit:/etc/init.d/rcS -> /etc/rcS.d/Sxx
+ // 2) ch->rlevel = "*5*", runlevel = '5'
+ // exec l5:5:wait:/etc/init.d/rc 5 -> /etc/rc5.d/Sxx
+ // exec rmts:2345:respawn:/sbin/rmt_storage
+ // exec tftp:2345:respawn:/sbin/tftp_server
+ // exec m1:5:wait:rm -f /var/run/qbi_session_active
+ // exec m2:5:respawn:/usr/bin/mbimd
+ // oem-end
if (strchr(ch->rlevel, runlevel) ||
((ch->flags & DEMAND) && !strchr("#*Ss", runlevel))) {
startup(ch);
@@ -2334,6 +2345,9 @@ void boot_transitions()
write_utmp_wtmp("reboot", "~~", 0, BOOT_TIME, "~");
/* Get our run level */
+ // oem-start
+ // newlevel = '5' by default
+ // oem-end
newlevel = dfl_level ? dfl_level : get_init_default();
if (newlevel == 'S') {
runlevel = newlevel;
@@ -2346,6 +2360,9 @@ void boot_transitions()
INITDBG(L_VB, "BOOT -> NORMAL");
if (runlevel != newlevel)
loglevel = newlevel;
+ // oem-start
+ // runlevel = '5'
+ // oem-end
runlevel = newlevel;
did_boot = 1;
warn = 1;
@@ -2633,6 +2650,11 @@ void init_main(void)
*/
setenv("PATH", PATH_DEFAULT, 0 /* Don't overwrite */);
}
+ // oem-start
+ // SIGCHLD -> ch->flags &= ~(RUNNING|ZOMBIE|WAITING);
+ // 1) ch->rlevel = "#", runlevel = '#'
+ // exec si::sysinit:/etc/init.d/rcS -> /etc/rcS.d/Sxx
+ // oem-end
start_if_needed();
while(1) {
@@ -2666,6 +2688,15 @@ void init_main(void)
process_signals();
/* See what we need to start up (again) */
+ // oem-start
+ // SIGCHLD -> ch->flags &= ~(RUNNING|ZOMBIE|WAITING);
+ // 2) ch->rlevel = "*5*", runlevel = '5'
+ // exec l5:5:wait:/etc/init.d/rc 5 -> /etc/rc5.d/Sxx
+ // exec rmts:2345:respawn:/sbin/rmt_storage
+ // exec tftp:2345:respawn:/sbin/tftp_server
+ // exec m1:5:wait:rm -f /var/run/qbi_session_active
+ // exec m2:5:respawn:/usr/bin/mbimd
+ // oem-end
start_if_needed();
}
/*NOTREACHED*/
阅读全文
0 0
- Linux-sysvinit-flow
- linux sysvinit与upstart(1)
- linux sysvinit与upstart(2)
- linux sysvinit与upstart(3)
- linux 文件系统sysvinit 流程分析
- SysVinit to Systemd Cheatsheet Linux服务配置
- linux第一个用户进程init--sysvinit
- Linux系统init过程之sysvinit
- Linux 初始化 init 系统1---sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析Linux初始化(init)系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 刷清橙OJ--A1076.约数个数
- MFC中皮肤库skin++的使用
- CSS伪元素--:after-:before的炫酷用法
- Rails做api开发常用框架
- 【Linux】Linux中常用操作命令
- Linux-sysvinit-flow
- 如何开启 mysql 慢查询日志
- Cookie禁用、Cookie安全问题
- JS导出Word细节设置
- 垃圾CSDN
- IE浏览器不能上网其他浏览器可以解决办法
- 努力做个成熟的人
- web前端框架的学习(一)——vue项目
- springmvc注解开发入门