Zum Inhalt springen
100% lokal

systemd Unit-Datei-Generator

Erstellen Sie eine gültige systemd .service-, .timer-, .socket- oder .mount-Datei aus wenigen Feldern.

Ausgabe

systemd Unit-Datei-Generator

Fügen Sie einfach einige Felder aus und dieses Tool schreibt eine vollständige systemd Unit-Datei, die Sie direkt in /etc/systemd/system/ einfügen können. Es deckt die vier Unit-Typen ab, die systemd-Administratoren am häufigsten von Hand schreiben: Service, Timer, Socket und Mount, und erzeugt die Abschnitte [Unit], [Service] und [Install] mit den Direktiven in der Reihenfolge, die systemd erwartet.

Für eine Service-Unit legen Sie die Beschreibung und Dokumentations-URL, den ExecStart-Befehl (mit optionalen ExecStartPre- und ExecStop-Hooks), den Service-Typ (simple, exec, forking, oneshot oder notify), den Benutzer und die Gruppe, unter der er ausgeführt wird, ein Arbeitsverzeichnis und Umgebungsvariablen entweder inline oder über EnvironmentFile fest. Die Neustartrichtlinie und RestartSec steuern, wie systemd reagiert, wenn der Prozess stoppt; After und Requires verbinden die Abhängigkeitsreihenfolge, und WantedBy legt fest, welches Ziel die Unit beim Booten einbezieht. Ein Hardening-Block fügt NoNewPrivileges, PrivateTmp, ProtectSystem und ProtectHome mit jeweils einem Klick hinzu, was dem entspricht, was viele Distributionen in ihren eigenen Service-Dateien für Sandboxing verwenden.

Beim Auswählen von Timer, Socket oder Mount werden die gemeinsamen Abschnitte [Unit] und [Install] weiterhin ausgefüllt, aber der typspezifische Block wird als Kommentar belassen, anstatt OnCalendar=, ListenStream= oder What=/Where=-Syntax zu erraten, die nicht überprüft werden kann — siehe den Cron-zu-systemd-Timer-Konverter für einen fertigen Zeitplan. Der Unit-Name wird auf die Zeichen bereinigt, die systemd erlaubt, und das Tool warnt, anstatt stehen zu bleiben, wenn ein Feld in absurd großer Größe eingefügt wird.

Alles läuft lokal in Ihrem Browser: Nichts, was Sie eingeben, einschließlich Hostnamen, Pfade oder Anmeldedaten in EnvironmentFile, wird jemals irgendwohin gesendet. Kopieren Sie das Ergebnis, laden Sie es als .txt-Datei herunter, um es umzubenennen und selbst zu installieren, oder senden Sie es an ein anderes Tool, um weiter zu bearbeiten.

Häufige Fragen

Wo lege ich die generierte Datei ab?
Speichern Sie es als /etc/systemd/system/<name>.service (oder .timer/.socket/.mount), führen Sie dann systemctl daemon-reload gefolgt von systemctl enable --now <name> aus.
Warum wird der typspezifische Block als Kommentar hinterlassen, wenn Timer oder Socket ausgewählt ist?
Diese Unit-Typen verwenden Direktiven, die dieser Generator nicht für Sie fabriciert — OnCalendar= für einen Timer, ListenStream= für einen Socket, What=/Where= für ein Mount. Fügen Sie sie dort ein, wo der Kommentar anzeigt, anstatt die erratene Syntax zu kopieren.
Was macht der Hardening-Block eigentlich?
NoNewPrivileges blockiert die Ausweitung von Privilegien, PrivateTmp gibt dem Service sein eigenes /tmp, und ProtectSystem/ProtectHome machen den größten Teil des Dateisystems für ihn schreibgeschützt oder unzugänglich. Zusammen entsprechen sie dem Sandboxing, das viele vom Distro bereitgestellte Services bereits verwenden.
Kann ich eine Unit für mehrere Umgebungsvariablen auf einmal generieren?
Ja. Listen Sie sie komma- oder zeilengetrennt als KEY=VALUE-Paare im Feld Umgebungsvariablen auf; jedes wird seine eigene Environment=-Zeile, und fehlerhafte Einträge werden übersprungen, anstatt die Datei zu unterbrechen.
Wird etwas, das ich eingebe, an einen Server gesendet?
Nein. Die Unit-Datei wird vollständig in Ihrem Browser generiert — einschließlich aller Pfade, Hostnamen oder Umgebungswerte, die Sie eingeben — und nichts wird hochgeladen.