Поэтому я не совсем понимаю, как создать скрипт запуска на моем сервере Ubuntu 11.10. Я читал о init
-скриптах, upstart
-работах и многом другом, но чем больше читаю, тем больше путаюсь.
Я пробовал различные руководства, но я просто не нашел никого, кто действительно работал.
Может кто-нибудь показать мне, как я создаю простой скрипт, который будет работать в 11.10?
Ответ Marty Fried содержит одну самую ценную информацию: Поваренная книга. Прочтение этого делает Вас более, чем способными записать Ваши init сценарии.
Однако смешивая с init.d, rc*.d, chkconfig и др., не то, что Вы хотите сделать. На Ubuntu (и другие дистрибутивы), они - просто остатки старого материала sysvinit, который много пакетов все еще используют или просто поддерживают по причинам прежней версии. ВЫ не НУЖДАЕТЕСЬ ИЛИ ХОТИТЕ ПОЙТИ ТУДА :-)
Самый простой из всех Новомодных сценариев запускается, демон (поместите его в/etc/init/mydaemon.conf):
exec /path/to/binary
Это - ВСЕ, в чем Вы нуждаетесь. Это заставляет Выскочку выполнить демона, когда Вы делаете start mydaemon
.
Хорошо, Вы хотите, чтобы это запустилось автоматически? Обычно, запуск после dbus является логическим выбором, поэтому позволяет, делают это:
start on started dbus
stop on stopping dbus
exec /path/to/binary
Этот простой сценарий запускает Вашего демона каждый раз, когда dbus запустился и остановит его незадолго до dbus остановки.
Вы хотите, чтобы это повторно метало икру (повторно запускаются), если это отказывает? Без проблем, просто добавьте respawn
на его собственной строке в файл.
Ваши ветвления демона или сам daemonizes? Хорошо позволяет, ловят его, тем не менее! Добавить expect fork
в случае единственного ветвления, или expect daemon
в случае истинного (двойное ветвление) daemonization.
Позволяет суммируют простой сценарий запуска для Вашего демона:
author "Your name goes here - optional"
description "What your daemon does shortly - optional"
start on started dbus
stop on stopping dbus
# console output # if you want daemon to spit its output to console... ick
respawn # it will respawn if crashed/killed
exec /path/to/binary
В случае, если Вы не хотите выполнять демона, но просто ряд команд, позволяет, забывают exec
строка и добавляет раздел сценария:
script
echo "Hello world!"
end script
Это заставляет Выскочку запустить скрипт вместо демона. Раздел сценария является просто нормальным сценарием оболочки, таким образом, можно сделать в значительной степени что-либо, что Вы хотите в нем.
Надежда это помогает. Придерживайтесь Новомодных конфигурационных файлов и не смешивайте с наследием sysv, и Вы сохраните нормальными :-)
Похоже, вы были на правильном пути. Некоторая путаница может возникнуть из-за того, что Ubuntu использует Upstart вместо традиционной системы инициализации Linux, но все еще поддерживает старые методы. Так что вы можете увидеть устаревшие методы, которые все еще работают.
Я не эксперт, и я также не уверен, где вы заблудились, но читали ли вы информацию здесь: http://upstart.ubuntu.com/cookbook/
В / etc есть много примеров, чтобы посмотреть. Я думаю, что настоящие сценарии находятся в / etc / init со ссылками в различных каталогах, таких как rc0.d, rc1.d и выше. Это зависит от того, на каких уровнях запуска вы хотите, чтобы ваш скрипт запускался. Кажется, я помню, что Ubuntu на самом деле не использует много уровней запуска, поэтому вы можете увидеть много дубликатов или неиспользуемых ссылок.
Также имейте в виду, что для запуска и остановки используются одни и те же сценарии.