Служба автозапуска при загрузке, которая зависит от сети

У меня есть определенный сервис (в данном случае OpenFire), который запускается при запуске. При запуске он пытается подключиться к базе данных по заданному имени хоста. Во время запуска он не может подключиться к этой базе данных, поскольку не может найти хост в DNS.

Мое лучшее предположение заключается в том, что эта служба выполняется при запуске до инициализации сети и получения DNS-серверов от DHCP. Есть ли способ указать зависимости службы запуска, которые должны быть выполнены перед выполнением сценария /etc/init.d/?

6
задан 8 September 2010 в 21:15

3 ответа

Забудьте о выскочке. Есть гораздо более простые способы сделать это. Поместите скрипт, который запускает Openfire, здесь:

 /etc/network/if-up.d/

Если openfire должен запускаться как ваш пользователь, то что-то вроде:

#!/bin/sh
su -c "openfire" myUserName

Убедитесь, что вы отметили его как исполняемый:

sudo chmod +x /etc/network/if-up.d/openfire

Аналогично, вы можете закрыть openfire, когда потеряете сетевое соединение, поместив скрипт в /etc/network/if-down.d/, который его убивает:

#!/bin/sh
killall openfire
0
ответ дан 8 September 2010 в 21:15

Вы можете посмотреть в /etc/rc0.d сервис, он будет иметь S ## [имя], то есть - S35networking

Так что, если вы скажете S36openfire, он должен загрузиться сразу после подключения , Или сделайте число 99, и оно будет загружаться последним, давая сети время для своей работы.

Надеюсь, что тебе удастся.

0
ответ дан 8 September 2010 в 21:15

Если вы не конфигурируете свою сеть с помощью NetworkManager, вы можете попытаться настроить свой upstart conf в зависимости от сети:

start on starting networking

или

start on starting network-interface

Я не знать, как он взаимодействует с NetworkingManager, возможно, NM вызывает некоторые события, которые можно обнаружить с помощью upstart.

0
ответ дан 8 September 2010 в 21:15

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

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