Существует ли “стандартный” способ сделать демона в Debian?

Мы делаем это все время. Одна из моих больших жалоб на то, где я работаю, - то, что у нас есть страшно фрагментированное пространство DNS. У нас есть домены DNS для каждой компьютерной лаборатории (bh212lab, например). И строка над заголовком, большинство лабораторий теперь domained. Кроме того, каждая из наших нормальных рабочих станций имеет их основной домен DNS в неAD домене. Люди не поняли, что домен домена имеет почти все в нем к настоящему времени.

Так или иначе это довольно возможно. Мы делаем его назад от того, что Вы делаете (доменом AD является sub.domain.ourdomain.edu, и большинство машин, живых в чем-то как anotherdomain.ourdomain.edu) кроме того же принципа, применяется.

Вы настраиваете свою рабочую станцию тем же путем, Вы всегда делали ее с набором вкладки DNS для поиска sub.mydomain.net и возможно domain.net также, если Вы желаете. Настройте свою зону DNS для sub.mydomain.net, чтобы разрешить что IP-адрес рабочей станции к чему-то в sub.mydomain.net.

Затем Вы присоединяетесь к домену. С Динамическим DNS та рабочая станция зарегистрируется в домене domain.net. Это абсолютно ничего не делает к существующей записи в sub.mydomain.net. Эта рабочая станция будет разрешима в двух отдельных доменах DNS.

Какой домен добирается, обратный поиск ваше дело, и я не полагаю, что он имеет значение.

Когда рабочая станция действительно снабдит разрешение, это будет автоматически искать в домене DNS домена AD, независимо от того, что это также настроено как.

17
задан 26 April 2010 в 17:07
3 ответа

Можно создать демона вручную после /etc/init.d/skeleton файл на Debian.

Можно использовать /usr/bin/service запускаться $ sudo service yourdaemon start и sstop $ sudo service yourdaemon stop Ваш демон.

Пока Вы не связываете свой сценарий ни с одним из /etc/rc?.d каталоги, это не начнет на запуске.

С другой стороны, можно хотеть посмотреть на daemontools, который не является стандартным на debian, но имеет некоторые интересные функции.

18
ответ дан 2 December 2019 в 20:31
  • 1
    Спасибо. Это кажется мной don' t имеют /usr/bin/service в моей системе (it' s Debian Lenny), но я могу запустить сценарии непосредственно с /etc/init.d/myservice start. –  Kuroki Kaze 26 April 2010 в 17:38
  • 2
    Можно использовать sudo invoke-rc.d yourservice start также –  chmeee 26 April 2010 в 17:42
  • 3
    не знал это. Спасибо –  chiggsy 15 May 2010 в 12:57

Debian (и Ubuntu) имеют программу помощника start-stop-daemon который используется в init сценариях. Это имеет довольно много опций запустить и отследить демонов. Можно просто записать обертку вокруг этого, например.

case $1 in
start) start-stop-daemon --start --exec /my/exec/prog --pidfile /my/pid/file --background
       ;;
stop)  start-stop-daemon --stop --pidfile /my/pid/file 
       ;;
esac
3
ответ дан 2 December 2019 в 20:31
  • 1
    Я предпочел бы/etc/init.d/skeleton, предложенный выше, потому что он также включает ИНФОРМАЦИОННЫЕ части INIT, который помогает с миграцией к начальной загрузке зависимости –  dpavlin 26 April 2010 в 21:06

Чтобы должным образом демонизировать процесс для Debian, вам нужно будет предпринять несколько шагов, включая разветвление от управляющего процесса, сброс IO и создание файла идентификатора процесса для хорошей игры. Вместо этого вы можете использовать что-то вроде программы-демона из пакета с тем же именем, чтобы сделать это за вас. Если это то, что вы хотели сделать, ответ можно найти здесь, в StackOverflow: https://stackoverflow.com/questions/3095566/linux-daemonize

Команда upstart больше похожа на команду invoke-rc в Debian. .d или служебную команду из пакета sysvinit-utils. Они ожидают, что сценарии инициализации в /etc/init.d будут отключены. В Debian стандартно создать один из них для вашего пакета и использовать программу start-stop-daemon, как вы можете видеть в примере /etc/init.d/skeleton.

Тот факт, что вы создали сценарий /etc/init.d/myservice, не означает, что он должен запускаться автоматически. Вы можете настроить уровни запуска, на которых он останавливается и запускается автоматически, с помощью такого инструмента, как update-rc.d. Более подробно это описано в Отключить запуск службы на всех уровнях запуска?

2
ответ дан 2 December 2019 в 20:31

Теги

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