Мне нужно было создать новый образ, и я выбрал новую ubuntu 16.04, чтобы я мог получать более новые версии некоторых пакетов, а не устанавливать их из исходников. Пока что я сожалею об этом решении, так как онлайн-документов мало.
В версиях 12.04 и 14.04 мне часто удавалось переназначить сценарии запуска для пользовательских компиляций, установив пакет, а затем удалив (не очищая) его, чтобы создать сценарии запуска ubuntu. Затем я мог бы просто отредактировать их, чтобы они указывали на правильный файл конфигурации и двоичный файл.
Например, чтобы использовать последнюю версию openresty, я мог бы просто сделать следующее:
apt-get install nginx
apt-get remove nginx
Тогда я мог бы просто обновить /etc/init.d/nginx
script, чтобы указать на мой собственный двоичный / конфигурационный файл, и у меня есть счастливый сценарий запуска ubuntu. Большой!
Этот метод больше не работает с 16.04.
Я редактировал:
/etc/init.d/nginx
/etc/init/nginx.conf
/lib/system.d/system/nginx.service
ubuntu никогда не извлекает мой двоичный файл (который находится в /usr/local/openresty/nginx/sbin/nginx
). это всегда работает /sbin/nginx
при загрузке (сначала я пропустил удаление nginx-core) или вообще ничего. То же самое и с другими пакетами.
Документы Ubuntu по переходу от выскочки отсутствуют в этой области, они связаны с «старт-стоп».
у меня есть без понятия где ubuntu решает это. я не могу найти никаких файлов конфигурации, которые указывают на /sbin/nginx
. Никакие логи не помогают. Каждый потенциальный файл, с которым я сталкивался, указывает на альтернативный двоичный файл и конфигурацию.
Если кто-нибудь сможет поделиться хорошим ресурсом об использовании новой системы запуска и о том, где она выглядит / хранит информацию, я был бы невероятно благодарен.
Похоже, здесь задействована база данных, поскольку она обнаружила изменения файлов и попросила меня перезагрузить, но я ее не нашел.
после того, как я много поигрался, я понял следующее:
Кажется, что пакет nginx установил два типа настроек, но использует только один. некоторые проблемы были связаны с этим.
/etc/init.d/nginx
и /etc/init/nginx.conf
/lib/systemd/system/nginx.service
и /etc/systemd/system/nginx.service
методом проб и ошибок: * запустить systemctl disable nginx.service
для отключения / удаления большинства ссылок и файлов * удалить файл в /etc/systemd/system/nginx.service, если он существует * поместить новый файл в /lib/systemd/system/nginx.service * запустить systemctl enable nginx.service
файл в /lib/systemd/system/nginx.service должен быть файлом; это не может быть символическая ссылка (в противном случае появляется ошибка слишком большого количества символических ссылок)
похоже, пока это работает. Я хотел бы использовать символические ссылки, поскольку эти файлы привязаны к системе контроля версий.
Не могли бы вы создать новую службу для своей пользовательской установки, а затем сделать ее автозапуском?
[Unit]
Description=Jonathan Vanasco nginx
[Service]
ExecStart=STARTUP COMMAND YOU WANT FOR CUSTOM
[Install]
WantedBy=multi-user.target
Потом проверка начинается:
systemctl start NAMEOFCUSTOM.service
Затем установите автоматический запуск при загрузке:
systemctl enable NAMEOFCUSTOM.service