Linux运行级别1:启动程序

Linux运行级别1:启动程序,linux,debian,runlevel,Linux,Debian,Runlevel,当我通过init 1进入运行级别1时,我试图自动启动一个进程。它是一个看门狗,必须始终发送生命信号,因此在运行级别1中也一样!但是当进入运行级别1时,每个进程都被终止,系统切换到运行级别S。我试图通过更新rc.d-f watchdog 99 1s来告诉linux启动我的进程。。/etc/rc1.d/和/etc/rcS.d/中的结果条目为: /etc/rc1.d/: . . . S30killprocs -> ../init.d/killprocs S90single -> ../in

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

/etc/rc1.d/

.
.
.
S30killprocs -> ../init.d/killprocs
S90single -> ../init.d/single
S99watchdog -> ../init.d/watchdog
.
.
.
.
.
.
S01glibc.sh -> ../init.d/glibc.sh
S02hostname.sh -> ../init.d/hostname.sh
S99watchdog -> ../init.d/watchdog
.
.
.
/etc/rcS.d/

.
.
.
S30killprocs -> ../init.d/killprocs
S90single -> ../init.d/single
S99watchdog -> ../init.d/watchdog
.
.
.
.
.
.
S01glibc.sh -> ../init.d/glibc.sh
S02hostname.sh -> ../init.d/hostname.sh
S99watchdog -> ../init.d/watchdog
.
.
.
输入运行级别
1
后的
ps ax
不会返回我的看门狗进程。我必须手动启动它

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
PID TTY STAT TIME命令
1.SS0:00初始值[S]
2.s0:00[kthread]
3.S 0:00[ksoftirqd/0]
4.S 0:00[kworker/0:0]
5.南0:00[kworker/u:0]
6.s0:00[rcu_kthread]
7.S<0:00[khelper]
8.南0:00[kworker/u:1]
104 ?        S 0:00[同步超级]
106 ?        S 0:00[bdi默认值]
108 ?        S<0:00[kblockd]
119 ?        S 0:00[khubd]
219 ?        S 0:00[kswapd0]
220 ?        S 0:00[FSU标记]
221 ?        S<0:00[aio]
314 ?        S<0:00[scsi\u tgtd]
347 ?        S<0:00[kps已用]
349 ?        S 0:00[kworker/0:1]
366 ?        S 0:00[w1_总线_master1]
390 ?        新加坡时间0:00[mmcqd/0]
395 ?        S 0:00[jbd2/mmcblk0p2-]
396 ?        S<0:00[ext4 dio Unwit]
475 ?        S 0:00[flush-179:0]
4532 ttyS0 Ss 0:00初始值[S]
4533 ttyS0 S 0:00狂欢节
4536 ttyS0 R+0:00 ps ax
我正在使用的系统是
Debian GNU/Linux 5.0 debarm
(嵌入式)。有什么提示或解决办法吗?谢谢。

如前所述:

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

您有几个选项可以绕过此限制:

  • 不要使用运行级别1,这不是它的目的
  • 登录时启动看门狗(如果这是一个有效选项),例如
    .bashrc

  • 我通过在
    /etc/inittab
    中添加以下行解决了这个问题:

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

    注意:它必须在
    /sbin/sulogin

    之前,所以有办法启动它吗?看门狗进程非常重要,因为如果硬件看门狗无法识别任何生命信号,它将执行硬件重置。请编辑我的问题以添加备选方案。@Satish RedHat不是Debian,实际上它们处理运行级别的方式不同,因为(IIRC)RH基于SystemV运行级别,而Debian基于BSD运行级别。选项1不是选项。这两个选项都不是因为我需要它在登录提示下运行,而不是在我登录时运行。您没有指定为什么选项1不是选项。