2.4 Точки входа и порядок запуска
Программа — пакет, содержащий хотя бы одно из: fn main(), объявление cluster (§12.1), объявление service. Запуск узла:
- Вычисляются
const(на этапе компиляции, §4.1). - Загружается и проверяется статический конфиг (§14.1). Ошибка — завершение с кодом 78.
- Если есть
cluster: вход в кластер и получение ролей (§12.2). Иначе узел получает неявную рольall. - Выполняются
provideдля ролей узла и связываютсяdep(§12.7). - Поднимаются сервисы, акторы, пайплайны, топики и задачи-лидеры ролей узла.
- Если есть
fn main(), она выполняется как задача запуска. Ошибка изmain— завершение с кодом 1. - Если узел ничего не размещает (нет сервисов, акторов, подписок, задач фонового scope), он завершается после
mainс кодом 0. Иначе работает до SIGTERM/SIGINT, затем дренирует запросы (drainизcluster.defaults, по умолчанию 30 с).
fn main() МОЖЕТ иметь сигнатуру fn main() -> () | E, эффекты не ограничены.
Связанные диагностики
См. также
Исходник: docs/spec/oxl-standard.md