2013-02-12 2 views
2

Я пытаюсь автоматически запускать процесс при вводе уровня запуска 1 по init 1. Это сторожевой таймер, который должен посылать сигнал жизни все время, поэтому на уровне запуска 1 тоже! Но когда вводится уровень запуска 1, каждый процесс уничтожается, и система переходит на уровень запуска S. Я попытался сказать linux, чтобы начать мой процесс на update-rc.d -f watchdog 99 1 S .. Полученные данные в /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:

Level Run 1 известен как режим 'одного пользователя'. Более подходящее описание было бы «спасательным» или «аварийным» режимом. На уровне запуска 1 no запущены демоны (услуги).

У вас есть несколько вариантов, чтобы обойти это ограничение:

  1. Не используйте уровень 1, это не то, что она предназначена для
  2. Начало сторожевого при входе в систему (если это действительный вариант), например .bashrc.
+0

Итак, есть способ запустить его в любом случае? Процесс сторожевого таймера является важным, потому что, если аппаратный сторожевой таймер не распознает какой-либо жизненный сигнал, он выполняет аппаратный сброс. – arminb

+0

Отредактировал мой вопрос, чтобы добавить альтернативы. – m0skit0

+0

В Redhat Linux это работает! Даже в однопользовательском режиме. – Satish

 Смежные вопросы

  • Нет связанных вопросов^_^