Comment puis-je désactiver tous les services sauf ssh sur les distributions Linux modernes (basées sur systemd)?
J'ai besoin d'implémenter un mode de maintenance .
Tous ces services doivent être arrêtés:
- postgres
- suffixe
- apache
- tasses
- cron
- pigeonnier
Mais ssh ne doit pas être arrêté, car il est utilisé pour effectuer des tâches pendant le mode de maintenance.
Bien sûr, je pourrais écrire un script shell qui fait une boucle sur une liste de services que je voudrais désactiver. Mais j'ai l'impression de réinventer quelque chose qui existe déjà, mais que je ne connais pas jusqu'à présent.
linux
service
systemd
maintenance
Guettli
la source
la source
Réponses:
Cela ressemble beaucoup à des niveaux d'exécution , remplacés par des cibles dans Systemd. Ainsi, au lieu d'écrire un script qui démarre et arrête une liste de services, vous pouvez créer un nouveau
maintenance.target
contenant uniquement les services nécessaires, comme SSH. Bien sûr, SSH n'est pas très utile sans réseau, donc dans cet exemple un simpleemergency-net.target
est modifié pour inclure SSH.Ensuite, vous pouvez entrer dans votre mode de maintenance en utilisant
et retour
la source
Commencez par répertorier vos services et recherchez leurs noms système correspondants.
Ensuite, créez une liste et arrêtez chaque membre de la liste pour entrer dans la maintenance, démarrez chaque membre après la maintenance.
la source
systemctl isolate
?