Я установил Nginx с помощью apt install nginx на хост Debian 9.2. Это работает нормально, но, глядя в журнал Systemd с journalctl -u nginx , я получаю смешную информацию :

Запущен Высокопроизводительный веб-сервер и обратный прокси-сервер.

Оказывается, Systemd повторно использует поле "Description" в разделе «[Unit]» файла модуля, и, конечно, достаточно для /lib/systemd/system/nginx.service :

Описание = высокопроизводительный веб-сервер и обратный прокси-сервер

Это шутка тех, кто поддерживает Debian Nginx или кого-то еще? Даже в документации Systemd по адресу https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Description= говорится:

Плохие примеры: «высокопроизводительный легкий HTTP-сервер» (слишком общий)

Поэтому я думаю отредактировать поле "Описание", чтобы придать ему более описательное значение, но я не уверен, как это будет работать, когда я буду обновлять пакет nginx как часть обновления или обновления системы - буду ли я предупрежден конфликта, если попытается установить другую версию nginx.service ? Я знаю, что это относится к файлам конфигурации пакета, это также относится к файлам других типов из пакета?

1 ответ1

1

Как правило, все, что находится в /usr или /lib должно рассматриваться только для чтения, и особенно все, что было установлено пакетом. (Есть редкие неудачные исключения.) Если файл не был специально отмечен в пакете, обновления просто перезапишут его.

Рекомендуемый способ изменения различных системных файлов - скопировать их в /etc Например, файл модуля /etc/systemd/system/nginx.service будет переопределять файл в /usr /lib. (Он даже переопределит автоматически сгенерированные сервисные единицы init.d.) Используйте инструмент systemd-delta чтобы увидеть различия всех переопределенных единиц.

Ну, я говорю "рекомендуется", потому что это также работает с такими вещами, как правила Udev и тому подобное ... Но еще лучший способ - переопределить только части блока, используя "вставные" файлы /etc/systemd/system/nginx.service.d/foobar.conf - для этого нужны только две строки, имя раздела [Unit] и ваше новое Description= настройка; остальное будет унаследовано от /usr /lib.

В обоих случаях вы можете использовать systemctl edit [--full] чтобы просто открыть редактор и внести свои изменения.

Наконец, общая опция Debian - указать системе упаковки (dpkg) избегать обновления определенного файла, где бы он ни находился. Вы можете "перенаправить" настоящий файл в другое место, используя dpkg-divert . Другие дистрибутивы имеют аналогичные функции, например, в паке Arch используются NoExtract= и NoUpgrade= .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .