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. 不要使用运行级别1,这是不是它是为
  2. 开始在登录看门狗(如果这是一个有效的选项),例如.bashrc
+0

无论如何,有没有办法启动它?看门狗进程非常重要,因为如果硬件看门狗不识别任何生命信号,它将执行硬件复位。 – arminb 2013-02-12 15:19:28

+0

编辑我的问题添加替代品。 – m0skit0 2013-02-12 15:47:23

+0

在Redhat Linux中它可行!即使在单用户模式下。 – Satish 2013-02-12 16:11:10