Kann ich die vom nginx-Paket gelieferte Nginx Systemd-Einheitendatei (/lib/systemd/system/nginx.service) sicher bearbeiten?

510
amn

Ich habe Nginx mit apt install nginxauf einem Debian 9.2-Host installiert . Es funktioniert gut, aber wenn journalctl -u nginxich in die Systemd-Zeitschrift schaue, werde ich komisch:

Gestartet Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server.

Es stellte sich heraus Systemd das Feld „Beschreibung“ in der „[Unit]“ der Unit - Datei wieder verwendet, und sicher genug für /lib/systemd/system/nginx.servicesie sagt:

Description = Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server

Ist das ein Witz von Debian Nginx-Betreuern oder jemand anderem? Selbst die Dokumentation von Systemd unter https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Description= sagt:

Schlechte Beispiele sind "Hochleistungs-HTTP-Server mit geringem Gewicht" (zu allgemein)

Ich denke also daran, das Feld "Description" zu bearbeiten, um ihm einen ehm, beschreibenden Wert zu geben, aber ich bin nicht sicher, wie dies funktionieren wird, wenn ich das nginx-Paket im Rahmen eines Systemupdates oder -upgrades aktualisiere. Ich werde gewarnt eines Konflikts, wenn nginx.serviceversucht wird, eine andere Version von installiert zu haben? Ich weiß, dass dies bei Paketkonfigurationsdateien der Fall ist. Gilt dies auch für andere Arten von Dateien aus dem Paket?

0

1 Antwort auf die Frage

1
grawity

Grundsätzlich gilt, dass alles, was in /usroder /libnur als schreibgeschützt gilt, und insbesondere alles, was von einem Paket installiert wurde. (Es gibt seltene unglückliche Ausnahmen.) Wenn eine Datei nicht speziell im Paket markiert wurde, wird sie durch Upgrades einfach überschrieben.

Die empfohlene Methode zum Ändern verschiedener systemd-Dateien ist das Kopieren in /etc. Beispielsweise /etc/systemd/system/nginx.serviceüberschreibt die Unit-Datei die Datei in / usr / lib. (Es werden sogar die automatisch generierten init.d-Serviceeinheiten überschrieben.) Verwenden Sie das Tool systemd-delta, um die Unterschiede aller überschriebenen Einheiten anzuzeigen.

Nun, ich sage "empfohlen", weil es auch mit udev-Regeln und so funktioniert ... Aber eine noch bessere Methode ist es, nur Teile einer Einheit mit "Drop-In" -Dateien zu überschreiben /etc/systemd/system/nginx.service.d/foobar.conf- dies erfordert nur zwei Zeilen, den Abschnitt Name [Unit]und Ihre neue Description=Einstellung; Der Rest wird von / usr / lib vererbt.

In beiden Fällen können Sie systemctl edit [--full]einfach einen Editor öffnen und Ihre Änderungen vornehmen.

Schließlich besteht die generische Debian-Option darin, dem Verpackungssystem (dpkg) mitzuteilen, dass es nicht erforderlich ist, eine bestimmte Datei zu aktualisieren, unabhängig davon, wo sie sich befindet. Sie können die echte Datei mit "anderswo" umleiten dpkg-divert. Andere Distributionen haben ähnliche Funktionen, z. B. verwendet Pac's NoExtract=und NoUpgrade=.