Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск демона при загрузке. 
:(
    Опции темы
konshyn
Дата 15.4.2014, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 19.9.2013

Репутация: нет
Всего: нет



Всем привет.
Есть собственноручно написанный демон. Его нужно поместить в автозагрузку, чтобы он работал даже тогда, когда в систему не вошел ни один пользователь. Чтобы каждый пользователь мог посмотреть, что этот демон работает, и если что - основить или запустить его, а когда выйдет из системы, чтобы демон продолжал работать.

Расскажу, что происходит и как я понимаю работу системы и что конкретно нужно (чтобы не давали советы типа "изучи shell").
Демон - сетевая служба. Он должен запускаться после того, как поднимутся все сетевые интерфейсы - их много. есть просто vlan'ы, есть просто интерфейсы, которые не имеют IP-адреса.
Интерфейс, который не имеет IP-адреса при загрузке не поднимается сам, поэтому в rc.local прописано ifconfig ethN up. Следовательно, демон должен запускаться посое выполнения rc.local.

Есть скрипт для демона, правда не готов из-за таких вопросов, который понимает команды start/stop.  Его нужно поместить в init.d. На какие уровни нужно поместить символические ссылки (rcN.d), чтобы он запускался после поднятия всех интерфейсов. Скрипты из rcN.d запускаются как? С параметром start или без параметров?

Как более грамотно должен быть написан демон и скрипт к нему?
Демон должен выполянть fork();exit(); как  здесь написано, и создавать mydaemon.pid файл?
И как должен вести себя скрипт. Я не совсем понимаю пример из /etc/init.d/skeleton, т.к. не знаю, как точно правильнее будет написать демона. И на что он должен реагировать.
Пример из выше приведенной ссылки мне не нравится, т.к. не хочется, чтобы демон запускался с параметрами start/stop/reload. Хочется, чтобы реагировал на сигналы, к примеру SIGTERM для "правильного" завершения.

start-stop-daemon тоже не совсем укладывается в моей голове - описание есть, и в /etc/init.d/skeleton пример есть
, а понимания работы - нет.


--------------------
«Потому что ценность акта действия в этой стране возрастает в несколько раз».
PM MAIL Skype   Вверх
spin2
Дата 18.4.2014, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 15.12.2005
Где: Москва-Одесса

Репутация: 2
Всего: 31



Если после интерфейсов - то в rc3.
Да и в тот же rc.local можно.


--------------------
"С кем тяжело молчать, с тем не о чем говорить" (Метерлинк)
блог
Все об ICQ-ботах
PM MAIL WWW ICQ Skype Jabber   Вверх
konshyn
Дата 18.4.2014, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 19.9.2013

Репутация: нет
Всего: нет



Цитата(spin2 @  18.4.2014,  11:30 Найти цитируемый пост)
Да и в тот же rc.local можно.

rc.local запускается до входа в систему?


--------------------
«Потому что ценность акта действия в этой стране возрастает в несколько раз».
PM MAIL Skype   Вверх
svlary
Дата 4.8.2014, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 8.9.2009

Репутация: нет
Всего: 4



Нассколько я понял, Вы пишите СЕТЕВОЙ демон, который работает с сетью. Для таких задач в Linux есть специальное средство:


12.17 Сетевая служба xinetd

Процесс xinetd — это самостоятельная сетевая служба, организующая ра-
боту большинствапростыхсервисов системы. Вместо запуска большогоколи-
чества самостоятельных служб, предоставляющих сервисы на определенных
портах,можнонастроить xinetd дляприемасоединенийизапускапрограмм
обработки сервисов. Сервисы, предоставляемые xinetd , как правило, определяются в файле

/etc/xinetd.conf

, а также в файлах каталога

/etc/xinetd.d/

Файлы определений сервисов распространяются вместе с пакетами, а их структура
подробно описана в интерактивном руководстве Linux (man xinetd.conf)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Администрирование"
ZeeLax
Imple
nerezus
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.

  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование *NIX систем | Следующая тема »


 




[ Время генерации скрипта: 0.1082 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.