У меня есть служба (небольшая служба http, которая прослушивает 0.0.0.0:8080), написанная на Python, которая запускается при загрузке системы. Проблема в том, что иногда при загрузке сервера он запускается слишком рано, когда даже IPv4 еще не инициализирован (?) Ядром. Сбой обслуживания с ошибкой (из / var / log / upstart):
socket.gaierror: [Errno -9] Семейство адресов для имени хоста не поддерживается
При запуске вручную позже запускается нормально. Также помогает добавление "сна 30" в предварительную секцию. Но я хотел бы знать, есть ли лучший и более чистый способ указать в конфигурации выскочки, что эта служба нуждается в рабочем ipv4. Ему не нужна полная «маршрутизация», шлюз по умолчанию или даже настроенная кольцевая проверка. Все, что ему нужно, - это возможность привязки к «любому» (0.0.0.0) IPv4-адресу.
Вы можете настроить свою работу на запуск, когда start on (started networking)
событие запускается.
началось Это событие генерируется Upstart, когда задание сейчас выполняется. Обратите внимание, что с заданием не обязательно должна быть связана программа или сценарий, поэтому "выполнение" не обязательно означает выполнение какого-либо дополнительного процесса.