Подтвердить что ты не робот

Initctl слишком старая проверка upstart

Я пытаюсь выполнить синтаксическую проверку выскочка script с помощью init-checkconf. Однако, когда я запускаю его, он возвращает ERROR: version of /sbin/initctl too old.

Я понятия не имею, что делать, я попытался переустановить выскочку, но ничего не изменилось. Это выполняется из контейнера докеров (ubuntu: 14.04), который может иметь какое-то отношение к нему.

4b9b3361

Ответ 1

Я просто столкнулся с той же проблемой.

Глядя в контейнер:

[email protected]:/# cat /sbin/initctl
#!/bin/sh
exit 0

Я еще не тестировал его полностью, но я добавил следующее в свой файл Docker:

# Fix upstart
RUN rm -rf /sbin/initctl && ln -s /sbin/initctl.distrib /sbin/initctl

Я думал, что эта ссылка объясняет это довольно хорошо:

Когда контейнер Docker запускается, запускается только команда CMD. Единственными процессами, которые будут выполняться внутри контейнера, является команда CMD и все процессы, которые она порождает. Вот почему все виды важных системных служб не запускаются автоматически - вы должны запускать их самостоятельно.

Копаясь еще немного, я нашел официальный образ Ubuntu, содержащий рабочую версию upstart: https://registry.hub.docker.com/_/ubuntu-upstart/