Wie kann ich alle Dienste außer ssh auf modernen (systemd-basierten) Linux-Distributionen deaktivieren?
Ich muss einen Wartungsmodus implementieren .
Alle diese Dienste müssen ausgefallen sein:
- postgres
- postfix
- Apache
- Tassen
- cron
- Taubenschlag
Ssh darf jedoch nicht heruntergefahren werden, da dies zur Ausführung von Aufgaben im Wartungsmodus verwendet wird.
Natürlich könnte ich ein Shell-Skript schreiben, das eine Liste von Diensten durchläuft, die ich deaktivieren möchte. Aber das fühlt sich so an, als würde ich etwas neu erfinden, was bereits existiert, aber ich weiß es bis jetzt nicht.
linux
service
systemd
maintenance
guettli
quelle
quelle
Antworten:
Das klingt nach Runlevel , die in Systemd durch Ziele ersetzt wurden . Anstatt ein Skript zu schreiben, mit dem eine Liste von Diensten gestartet und gestoppt wird, können Sie ein neues Skript erstellen,
maintenance.target
das nur die erforderlichen Dienste enthält, z. B. SSH. Natürlich ist SSH ohne Netzwerk nicht sehr nützlich, daher wird in diesem Beispiel ein einfachesemergency-net.target
so modifiziert, dass es SSH enthält.Anschließend können Sie mit in den Wartungsmodus wechseln
und zurück
quelle
Listen Sie zuerst Ihre Dienste auf und suchen Sie nach den entsprechenden Systemnamen.
Erstellen Sie dann eine Liste und stoppen Sie jedes Listenmitglied, um die Wartung zu starten. Starten Sie jedes Mitglied nach der Wartung.
quelle
systemctl isolate
?