Bash-Alias ​​zum Starten / Stoppen mehrerer Dienste

814
Francesco

Ich bin ein Entwickler, der mit LAMP-Stack arbeitet.

Mein PC führt arch Linux aus, so dass es systemd basiert.

es hat eine begrenzte Menge an RAM 8 GB:

  • Manchmal benutze ich es für die Arbeit
  • manchmal für Spiele spielen

Ich möchte die LAMP-Dienste einfach mit einem Befehl starten / stoppen können.
So kann ich sie deaktiviert halten, um einen Widder zu retten.

Wie kann ich das erreichen, ohne jedes Mal zu schreiben:

sudo systemctl start httpd.service sudo systemctl start mariadb.service sudo systemctl start redis.service 

Ich schreibe unten meine Lösung für den Fall, dass ein Neuling Bash-Liebhaber sie braucht. Wenn Sie eine bessere Lösung haben, fügen Sie sie hinzu und ich unterstütze sie.

Vielen Dank

0

2 Antworten auf die Frage

2
Francesco

Deaktivieren Sie zunächst die Dienste, damit sie nicht beim Booten gestartet werden:

sudo systemctl disable httpd.service sudo systemctl disable mariadb.service sudo systemctl disable redis.service 

Dann bearbeiten Sie.bashrc in Ihrem Haus und fügen Sie am Ende hinzu

web() { #do things with parameters like $1 such as sudo systemctl "$1" httpd.service sudo systemctl "$1" mariadb.service sudo systemctl "$1" redis.service } 

Jetzt können Sie alle zugehörigen Dienste auf einfache Weise starten / stoppen / neu starten

web start 

Ändern Sie das Web () mit dem, was Sie möchten.

Dies ist eine Funktion, kein Alias. Das ist eigentlich eine gute Sache. Sie sollten Aliasnamen wahrscheinlich ganz vermeiden. tripleee vor 6 Jahren 3
Danke für den Hinweis, warum sind Aliase schlecht? Francesco vor 6 Jahren 0
Beispielsweise zeigt https://unix.stackexchange.com/a/233751/19240 einige Probleme mit ihnen. tripleee vor 6 Jahren 1
@Francesco, Aliase können keine Argumente annehmen, Funktionen dagegen. Aus diesem Grund sollten wir Funktionen verwenden und Aliase vollständig vermeiden. C0deDaedalus vor 6 Jahren 1
0
Elham_Jahani

Sie können einen Alias ​​für den Start und einen für Stop definieren, wie unter dem folgenden Befehl:

alias start_services='systemctl start httpd.service mariadb.service redis.service' alias stop_services='systemctl stop httpd.service mariadb.service redis.service'