У меня есть сценарий инициализации SysV на Fedora 18. Как я могу запустить его после того, как сеть будет готова?

У меня есть сценарий инициализации SysV на Fedora 18. Fedora 18 использует systemd (и, по-видимому, нет способа переключиться обратно на SysV).

Мой сценарий требует, чтобы сеть была готова. В настоящее время, когда скрипт запускается, сеть не готова. Как я могу убедиться, что мой сценарий инициализации SysV запускается после запуска сети?

Начало моего сценария выглядит так:

   #!/bin/bash
   #
   # chkconfig: 345 99 01
   # description: starts the xyz boot service

2 ответа

Решение

ОК, попробовав несколько вещей, я попытался добавить заголовок LSB:

### BEGIN INIT INFO
# Required-Start: $network $local_fs $named
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Starts/stops the foo service
# Description: Starts/stops the foo service
### END INIT INFO

Это сработало! Сценарий теперь запускается после инициализации сети. Я думаю, systemd Реализация читает заголовок LSB.

Чтобы запустить скрипт, когда сеть будет готова, в разделе [Unit] файла службы systemd добавьте следующее:

After=network-online.target
Wants=network-online.target

Сеть определяется как готовая, когда программное обеспечение для управления сетью считает, что сеть работает (это обычно означает, что IP-адрес настроен и маршрутизируется). Для NetWorkManager он запрашивает информацию в dbus.

Рекомендации

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