Общий дизайн демона / сервера - Лучшие практики (C / C ++, Linux)

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

Типичные требования:

  1. Программа, которая действует как «сервер», работающая в Linux в в фоновом режиме (и работает почти без остановок. перезапуск, возможно, ежедневно или еженедельно)
  2. Обрабатывает клиентские соединения по некоторому протоколу сокетов
  3. Имеет файлы конфигурации запуска
  4. Выводит в один или несколько файлов журнала

Мои вопросы:

  1. Следует ли писать программу как «демон»? Что я должен учитывать при выборе маршрута «демон или не демон»?
  2. Куда в иерархии папок linux должны идти файлы журналов и файлы конфигурации? Должен ли я запускать его из домашнего каталога какого-либо пользователя или из подпапки в домашнем каталоге какого-либо пользователя? Или, может быть, я должен создать новую папку, например / my_server_abc /, а затем запустить ее оттуда, записывая файлы журнала в этот каталог?

Спасибо

5
задан Switch 20 August 2011 в 01:48
поделиться