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

Was ist der Unterschied zwischen nohup und kaufmännischem Und?

nohup fängt das Auflegesignal ab (siehe man 7 signal ), während das kaufmännische Und dies nicht tut (außer die Shell ist so konfiguriert oder sendet SIGHUP nicht überhaupt).

Normalerweise, wenn ein Befehl mit & ausgeführt wird und danach die Shell verlassen, beendet die Shell den Unterbefehl mit dem Hangup-Signal (kill -SIGHUP <pid> ). Dies kann mit nohup verhindert werden , da es das Signal abfängt und ignoriert, sodass es nie die eigentliche Anwendung erreicht.

Falls Sie Bash verwenden, können Sie den Befehl shopt | grep hupon verwenden um herauszufinden, ob Ihre Shell SIGHUP an ihre untergeordneten Prozesse sendet oder nicht. Wenn es ausgeschaltet ist, werden Prozesse nicht beendet, wie es bei Ihnen der Fall zu sein scheint. Weitere Informationen darüber, wie Bash Anwendungen beendet, finden Sie hier.

Es gibt Fälle, in denen nohup funktioniert nicht, zum Beispiel wenn der von Ihnen gestartete Prozess die SIGHUP wieder verbindet Signal, wie es hier der Fall ist.


myprocess.out & würde den Prozess mit einer Subshell im Hintergrund ausführen. Wenn die aktuelle Shell beendet wird (z. B. durch Abmelden), werden alle Subshells ebenfalls beendet, sodass der Hintergrundprozess ebenfalls beendet wird. Der Befehl nohup ignoriert den HUP Signal und damit auch wenn die aktuelle Shell beendet wird, die Subshell und myprocess.out im Hintergrund weiterlaufen würde. Ein weiterer Unterschied besteht darin, dass & allein leitet stdout/stderr nicht um. Wenn also eine Ausgabe oder ein Fehler auftritt, werden diese auf dem Terminal angezeigt. nohup hingegen leitet stdout/stderr auf nohup.out um oder $HOME/nohup.out .


Meistens melden wir uns mit ssh beim Remote-Server an. Wenn Sie ein Shell-Skript starten und sich abmelden, wird der Prozess beendet. Nohup hilft dabei, das Skript im Hintergrund weiter auszuführen, auch nachdem Sie sich von der Shell abgemeldet haben.

Nohup command name &
eg: nohup sh script.sh &

Nohup fängt die HUP-Signale ab. Nohup stellt den Job nicht automatisch in den Hintergrund. Das müssen wir explizit mit &

mitteilen
Linux
  1. Der Unterschied in der Verwendung zwischen Shell-Variablen und Umgebungsvariablen?

  2. Was ist der Unterschied zwischen Git Switch und Checkout?

  3. Was ist der Unterschied zwischen Redhat und CentOS?

  4. Was ist der Unterschied zwischen &> und >&in bash?

  5. Was ist der Unterschied zwischen adduser und useradd?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Unterschied zwischen unlink und rm?