GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was bedeutet &am Ende eines Linux-Befehls?

Darüber hinaus können Sie das "&"-Zeichen verwenden, um viele Prozesse über eine (1) ssh-Verbindung auszuführen, um eine minimale Anzahl von Terminals zu erhalten. Zum Beispiel habe ich einen Prozess, der auf Nachrichten wartet, um Dateien zu extrahieren, der zweite Prozess wartet auf Nachrichten, um Dateien hochzuladen:Mit dem "&" kann ich beide Dienste in einem Terminal über eine einzige SSH-Verbindung zu meinem Server ausführen .

Diese Prozesse, die durch das "&" laufen, bleiben auch nach dem Schließen der SSH-Sitzung "am Leben". Ziemlich ordentlich und nützlich, wenn die ssh-Verbindung zum Server unterbrochen ist und kein Terminal-Multiplexer (screen, tmux, byobu) verwendet wurde.


Wenn nichts anderes gesagt wird, übernehmen Befehle den Vordergrund. Sie haben nur einen "Vordergrund"-Prozess, der in einer einzelnen Shell-Sitzung ausgeführt wird. Das Symbol &weist Befehle an, in einem Hintergrundprozess ausgeführt zu werden, und kehrt für weitere Befehle sofort zur Befehlszeile zurück.

sh my_script.sh &

Ein Hintergrundprozess wird nicht am Leben bleiben, nachdem die Shell-Sitzung geschlossen wurde. SIGHUP beendet alle laufenden Prozesse. Standardmäßig sowieso. Wenn Ihr Befehl lange läuft oder unbegrenzt läuft (z. B. Microservice), müssen Sie ihn mit nohup voranstellen, damit er weiter ausgeführt wird, nachdem Sie die Sitzung getrennt haben:

nohup sh my_script.sh &

BEARBEITEN: Es scheint eine Grauzone bezüglich des Schließens von Hintergrundprozessen zu geben, wenn &verwendet wird. Seien Sie sich nur bewusst, dass die Shell darf Schließen Sie Ihren Prozess je nach Betriebssystem und lokalen Konfigurationen (insbesondere auf CENTOS/RHEL):https://serverfault.com/a/117157.


Der & lässt den Befehl im Hintergrund laufen.

Ab man bash :

Wenn ein Befehl durch den Kontrolloperator & beendet wird , führt die Shell den Befehl im Hintergrund in einer Subshell aus. Die Shell wartet nicht auf das Ende des Befehls, und der Rückgabestatus ist 0.


Linux
  1. Was bedeutet kaufmännisches Und am Ende einer Shell-Skriptzeile?

  2. Was bedeutet in der Ausgabe von Ps?

  3. Was bedeutet die Syntax |&in der Shell-Sprache?

  4. Was bedeutet das Linux-Pipe-Symbol | tun?

  5. Was ist ein Befehl, um die Priorität des Prozesses in Linux zu finden?

Was ist der Linux-Überwachungsbefehl + Beispiele

Was bedeutet Cat-Befehl unter Linux?

Was ist der Kill-Befehl in Linux?

Was ist die Linux-Prozesstabelle? Woraus besteht es?

Was bedeutet der Buchstabe 'u' in /dev/urandom?

Was bedeutet das Suffix .d unter Linux?