запускать уровни только при запуске

Я нахожу концепцию уровней запуска очень запутанной. В настоящее время я пытаюсь запустить скрипт только при запуске. Но настройка, как показано ниже, приводит к тому, что он работает и во время остановки.

Я программирую демона следующим образом:

update.rc-d script.sh defaults 100

Также я попробовал

update-rc-d script.sh start 100

Но это тоже не работает.

1
задан 24 July 2013 в 05:20

2 ответа

Runlevels являются логическими группами задач. Традиционно у Вас есть пять уровней выполнения.

0 boot
1 single user 
2 not used
3 multiuser
4 not used 
5 gui
6 reboot 

Каждый runlevel определяет более или менее статический набор задач работать. Runlevel 1, может не иметь сетей, в то время как runlevel 3 не может иметь экрана входа в систему GUI. Система проходит, все понижают runlevels, прежде чем это достигнет значения по умолчанию runlevel. Для типичного поля Ubuntu традиционный runlevel равняется 5: GUI, в то время как другие дистрибутивы, такие как Debian или хинду могут прибыть настроенные для выполнения 3: многопользовательский как значение по умолчанию runlevel.

В последних версиях человечности эта модель изменилась несколько, потому что предыдущий способ запустить систему не позволял, чтобы многочисленные услуги (программы) работали параллельно. Без сомнения также были другие причины.


Если я понимаю Вашу цель правильно, необходимо выполнить единственную команду. Можно сделать это путем помещения его наряду с любыми другими командами, которые Вы могли бы иметь в/etc/rc.local файле:

$ chmod 755 /etc/rc.local 

Система Init не будет петлять без битов выполнения

$ cat /etc/rc.local
#!/bin/sh -e
# This script is executed at the end of each multiuser runlevel.

loadkeys  /root/jolemak.iso15.kmap
exit 0

Любой многопользовательский runlevel означает любой runlevel выше 3. В этом примере единственная команда выполняется для загрузки альтернативной раскладки клавиатуры для виртуальных консолей. Это служит быстрым способом зафиксировать расположение, прежде чем я выясню, как правильно установить и настроить дополнительные разметки.


Если необходимо сделать более усовершенствованный материал, или записать традиционному/etc/init.d/foo сценарию или новой выскочке (определенный для Ubuntu)/etc/init/moo.conf. Изучите примеры в той папке и считайте Wiki для большего количества информации.

https://help.ubuntu.com/community/UbuntuBootupHowto
http://upstart.ubuntu.com/getting-started.html
http://upstart.ubuntu.com/cookbook/

На Ваш вопрос также отвечают здесь: http://upstart.ubuntu.com/cookbook/#single-job и здесь http://www.debuntu.org/how-to-managing-services-with-update-rc-d/

3
ответ дан 24 July 2013 в 05:20

http://www.netbsd.org/docs/guide/en/chap-rc.html#chap-rc-scripts документирует, как должен работать ваш скрипт. Ваш сценарий будет запускаться при запуске, завершении работы и каждый раз, когда пользователь запускает «service yourscriptname». Вы должны указать своему сценарию проверить его первый и единственный параметр. Если этот параметр «start», запустите службу или сделайте все, что делает ваш скрипт. Если этот параметр «стоп», то остановите службу или ничего не делайте. Как вы справляетесь с «перезагрузкой» и «состоянием» - решать вам. Прямо сейчас ваш сценарий игнорирует этот параметр, поэтому, когда «script.sh start» вызывается при запуске, все хорошо, но когда «script.sh stop» вызывается при остановке, все снова запускается.

0
ответ дан 24 July 2013 в 05:20

Другие вопросы по тегам:

Похожие вопросы: