Как делают меня daemonify мой демон?

Как часть системы Достижений Ubuntu у меня есть демон, который работает, а также клиент, который соединяется с нею. Демон записан в Python (использующий Скрученный) и предоставляет dbus услугу и средство обработки запросов от клиентов.

Прямо сейчас демон является просто программой, которую я запускаю, прежде чем я выполню клиент, и она настраивает dbus сервис и обеспечивает API, который может использоваться клиентами.

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

Проблема, я не уверен, к чему я должен сделать правильно daemonify она так, она может работать как этот сервис. Я хотел спросить, могут ли другие обеспечить некоторое руководство. Некоторые вещи я должен спросить:

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

В ответе, если бы можно указать на меня на определенные примеры или решения, я должен реализовать, который был бы полезен.:-)

Спасибо!

3
задан 17 April 2014 в 00:39

2 ответа

Я нашел несколько практических руководств только путем запущения поиска Google:

http://www.enderunix.org/docs/eng/daemon.php

http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html

http://code.activestate.com/recipes/66012-fork-a-daemon-process-on-unix/

http://cjh.polyplex.org/software/daemon.pdf

Я надеюсь, что они могут помочь Вам на Вашем пути.

1
ответ дан 17 April 2014 в 00:39

Демон - это в основном программа без непосредственного взаимодействия с пользователем ... Так что в этом нет ничего особенного. Тем не менее, вы должны позаботиться о некоторых ключевых моментах:

  • любой вывод или журнал должен идти в системный журнал, а не стандартный вывод
  • при запуске, создайте файл pid в / var /бежать. И очистите его при выключении.
  • Вы должны написать файл службы надзора, который будет расположен в /etc/init.d (скрипты для существующего демона - хороший источник вдохновения). Этот скрипт обычно должен запускать демона под нужным пользователем, предоставлять ему правильные файлы конфигурации и т. Д.
  • Ваш процесс может начаться с разветвления, чтобы отсоединиться от вызывающего процесса, но я не совсем уверен в этом, особенно для программы на Python.
0
ответ дан 17 April 2014 в 00:39

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

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