/ / Kann ich die im nginx-Paket enthaltene Nginx Systemd-Einheitendatei (/lib/systemd/system/nginx.service) sicher bearbeiten? - debian, nginx, systemd

Kann ich die im nginx-Paket enthaltene Nginx Systemd-Einheitendatei (/lib/systemd/system/nginx.service) sicher bearbeiten? - debian, nginx, systemd

Ich habe Nginx mit installiert apt install nginx auf einem Debian 9.2-Host. Es funktioniert einwandfrei, schaut aber im Systemd-Journal mit journalctl -u nginxIch verstehe das komisch:

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

Es stellte sich heraus, dass Systemd das Feld "Description" im Abschnitt "[Unit]" der Unit-Datei wiederverwendet und sicher genug f├╝r /lib/systemd/system/nginx.service es sagt:

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

Ist dies ein Witz von Betreuern von Debian Nginx oder von jemand anderem? Sogar Systemd-Dokumentation 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, das Feld "Beschreibung" zu bearbeitenIch bin mir jedoch nicht sicher, wie dies funktionieren wird, wenn ich das nginx-Paket als Teil einer Systemaktualisierung oder eines Upgrades aktualisiere. Werde ich vor einem Konflikt gewarnt, wenn eine andere Version von verwendet wird? nginx.service wird versucht installiert? Ich wei├č, dass dies bei Paketkonfigurationsdateien der Fall ist. Gilt dies auch f├╝r andere Arten von Dateien aus dem Paket?

Antworten:

1 f├╝r Antwort Ôäľ 1

In der Regel ist alles in Ordnung /usr oder /lib sollte als schreibgesch├╝tzt betrachtet werden, und insbesonderealles, was von einem Paket installiert wurde. (Es gibt seltene ungl├╝ckliche Ausnahmen.) Wenn eine Datei im Paket nicht speziell gekennzeichnet wurde, wird sie von Upgrades einfach ├╝berschrieben.

Die empfohlene Methode zum ├ändern verschiedener systemd-Dateien besteht darin, sie nach zu kopieren /etc. Zum Beispiel die Unit-Datei /etc/systemd/system/nginx.service ├╝berschreibt die in / usr / lib. (Es werden sogar die automatisch generierten init.d-Serviceeinheiten au├čer Kraft gesetzt.) Verwenden Sie das Tool systemd-delta um Unterschiede aller ├╝berschriebenen Einheiten zu sehen.

Nun, ich sage "empfohlen", weil es auch mit Dingen wie udev-Regeln und dergleichen funktioniert. Eine noch bessere Methode ist es, nur Teile einer Einheit mit "Drop-In" -Dateien zu ├╝berschreiben /etc/systemd/system/nginx.service.d/foobar.conf - Hierf├╝r werden nur zwei Zeilen ben├Âtigt, der Abschnittsname [Unit] und dein neues Description= Rahmen; Der Rest wird von / usr / lib geerbt.

In beiden F├Ąllen k├Ânnen Sie verwenden systemctl edit [--full] ├ľffnen Sie einfach einen Editor und nehmen Sie Ihre ├änderungen vor.

Schlie├člich besteht die generische Debian-Option darin, das Paketierungssystem (dpkg) anzuweisen, die Aktualisierung einer bestimmten Datei zu vermeiden, unabh├Ąngig davon, wo sie sich befindet. Sie k├Ânnen die reale Datei mit "umleiten" dpkg-divert. Andere Distributionen weisen ├Ąhnliche Merkmale auf, z. Arch "s Pacman verwendet NoExtract= und NoUpgrade=.