Linux Runlevel 1:启动程序

时间:2013-02-12 15:14:26

标签: linux debian runlevel

当我按1输入运行级别init 1时,我正在尝试自动启动流程。它是一个看门狗,因此必须始终在运行级别1发送生命信号!但是当输入运行级别1时,每个进程都会被终止,系统会切换到运行级别S。我试图通过update-rc.d -f watchdog 99 1 S .告诉linux启动我的流程。 /etc/rc1.d//etc/rcS.d/中的结果条目为:

/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并不会返回我的监视程序进程。我必须手动启动它。

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(嵌入式)。任何提示或解决方案?谢谢。

2 个答案:

答案 0 :(得分:2)

如上所述here

  

运行级别1称为“单用户”模式。更贴切的描述   将是“救援”或“排除故障”模式。在运行级别1中,否   守护进程(服务)已启动

您有几种方法可以解决此限制:

  1. 不要使用运行级别1,这不是它的意思
  2. 登录时启动监视程序(如果这是有效选项),例如.bashrc

答案 1 :(得分:0)

我通过在/etc/inittab中添加以下行来解决它:

~~:S:wait:/etc/init.d/watchdog start
~~:S:wait:/sbin/sulogin

注意:必须在/sbin/sulogin之前。