2013-02-12 158 views
2

我試圖在我通過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(嵌入式)。任何提示或解決方案?謝謝。

回答

0

我解決它通過添加以下行/etc/inittab

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

注:它必須是/sbin/sulogin之前。

2

正如所述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