Linux运行级别1:启动程序
问题描述:
我试图在我通过init 1
进入运行级别1
时自动启动进程。因此,在运行级别1
也必须始终发送生命信号的看门狗!但是当进入运行级别1
时,每个进程都被终止并且系统切换到运行级别S
。我试图通过update-rc.d -f watchdog 99 1 S .
来告诉linux启动我的进程。在/etc/rc1.d/
和/etc/rcS.d/
得到的条目是:Linux运行级别1:启动程序
/etc/rc1.d/
:
.
.
.
S30killprocs -> ../init.d/killprocs
S90single -> ../init.d/single
S99watchdog -> ../init.d/watchdog
.
.
.
/etc/rcS.d/
:
.
.
.
S01glibc.sh -> ../init.d/glibc.sh
S02hostname.sh -> ../init.d/hostname.sh
S99watchdog -> ../init.d/watchdog
.
.
.
一个ps ax
运行级别1
被输入后sadfully不回我的监视进程。我必须手动启动它。
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init [S]
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [ksoftirqd/0]
4 ? S 0:00 [kworker/0:0]
5 ? S 0:00 [kworker/u:0]
6 ? S 0:00 [rcu_kthread]
7 ? S< 0:00 [khelper]
8 ? S 0:00 [kworker/u:1]
104 ? S 0:00 [sync_supers]
106 ? S 0:00 [bdi-default]
108 ? S< 0:00 [kblockd]
119 ? S 0:00 [khubd]
219 ? S 0:00 [kswapd0]
220 ? S 0:00 [fsnotify_mark]
221 ? S< 0:00 [aio]
314 ? S< 0:00 [scsi_tgtd]
347 ? S< 0:00 [kpsmoused]
349 ? S 0:00 [kworker/0:1]
366 ? S 0:00 [w1_bus_master1]
390 ? S 0:00 [mmcqd/0]
395 ? S 0:00 [jbd2/mmcblk0p2-]
396 ? S< 0:00 [ext4-dio-unwrit]
475 ? S 0:00 [flush-179:0]
4532 ttyS0 Ss 0:00 init [S]
4533 ttyS0 S 0:00 bash
4536 ttyS0 R+ 0:00 ps ax
我工作的系统是Debian GNU/Linux 5.0 debarm
(嵌入式)。任何提示或解决方案?谢谢。
答
我解决它通过添加以下行/etc/inittab
:
~~:S:wait:/etc/init.d/watchdog start
~~:S:wait:/sbin/sulogin
注:它必须是/sbin/sulogin
之前。
答
正如所述here:
运行级别1被称为 '单用户' 模式。更为恰当的描述 将是'救援'或'故障排除'模式。在运行级别1中,否 守护进程(服务)启动。
您有几种选择来解决这个限制:
- 不要使用运行级别1,这是不是它是为
- 开始在登录看门狗(如果这是一个有效的选项),例如
.bashrc
。
无论如何,有没有办法启动它?看门狗进程非常重要,因为如果硬件看门狗不识别任何生命信号,它将执行硬件复位。 – arminb 2013-02-12 15:19:28
编辑我的问题添加替代品。 – m0skit0 2013-02-12 15:47:23
在Redhat Linux中它可行!即使在单用户模式下。 – Satish 2013-02-12 16:11:10