Правильный способ автоматического перезапуска (при изменении конфига)
Модераторы: /dev/random, Модераторы разделов
Правильный способ автоматического перезапуска
Есть демон, у него есть rc-файл. Интересно, как типовым образом решить проблему автоматического перезапуска при внесении изменений в конфиг? gvfs-monitor-file - это удачный вариант? И как дальше? (Опции "перечитать конфиг" нет, опции "replace" нет, только рестарт).
- Bizdelnick
- Модератор
- Сообщения: 20796
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правильный способ автоматического перезапуска
Типовое решение — перезапускать его вручную после изменения файла.
Однозначно нет. Можно попробовать inotifywait. Если это действительно необходимо.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Правильный способ автоматического перезапуска
Bizdelnick писал(а): ↑22.06.2016 17:15Типовое решение — перезапускать его вручную после изменения файла.
killall; start? Мне не кажется это юзабельным. Могу написать для него обертку, но как это сделать грамотно? Чтобы при закрытии терминала процесс оставался в фоне, nohup, disown?
Re: Правильный способ автоматического перезапуска
Большинство традиционных демонов перечитывают свои конфиг-файлы получив сигнал SIGHUP.
Это правило ещё из более старых UNIX, оно родилось ещё до Linux.
Кто-то из серверов (не помню кто) перечитывает конфигурацию по сигналу SIGUSR1.
Перечитать конфиги (или любые установки) - это асинхронная операция (потребность возникающая извне), и лучший механизм для уведомления об асинхронных событиях это сигналы.
Спасибо сказали:
- Bizdelnick
- Модератор
- Сообщения: 20796
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правильный способ автоматического перезапуска
service yourdaemon restart
OpenSUSE? Добавить сервис systemd.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Правильный способ автоматического перезапуска
Об этом не подумал, заклинило на способах решения средствами bash. Вариант с systemd пожалуй "наиболее типовой" и будет
Правда, мне неизвестно, умеет ли systemd отслеживать изменения в конфигурационных файлах.
Re: Правильный способ автоматического перезапуска
По-моему это плохая идея. Тут лучше без автоматики.
Как сообщить демону, что конфигурация изменилась, вам уже объяснили. Но всю работу должен делать сам демон, и роль systemd или ещё кого-либо тут весьма невелика.
Ещё лучше предусмотреть возможность конфигурирования на лету, например, через d-bus, но тут уже придётся повозиться.
Как сообщить демону, что конфигурация изменилась, вам уже объяснили. Но всю работу должен делать сам демон, и роль systemd или ещё кого-либо тут весьма невелика.
Ещё лучше предусмотреть возможность конфигурирования на лету, например, через d-bus, но тут уже придётся повозиться.
- Bizdelnick
- Модератор
- Сообщения: 20796
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правильный способ автоматического перезапуска
Онлайн-кофигурация обычно делается через БД (SQL или LDAP). Через d-bus возни будет действительно слишком много. Но, насколько я понял, это не тот случай (поправьте, если ошибаюсь): у ТСа уже есть некий демон, переделывать который он не намерен.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Правильный способ автоматического перезапуска
Bizdelnick писал(а): ↑23.06.2016 14:27у ТСа уже есть некий демон, переделывать который он не намерен.
Угу. Автор написал классную вещь, но оно на C - тут я бессилен что либо испортить)) Но не принципиально, о чем именно речь, если написать подобную "обертку", то ее с тем же успехом можно использовать и для собственных скриптов.
Пожалуй вариант с systemd мне не нравится, почему-то.. но и частые перезапуски нужны только при настройке, а потом оно просто работает. Так что вопрос становится чисто теоретическим.