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

nohup:Befehl nicht gefunden

Der Befehl nohup („no hangup“) verhindert, dass ein Prozess beendet wird, wenn sich der Benutzer abmeldet. Wenn beispielsweise ein Administrator ein Backup-Skript startet und sich dann vom System abmeldet, wird das Skript nicht mehr ausgeführt. Durch Platzieren des nohup-Befehls vor dem normalen Befehl würde das Skript auch dann fortgesetzt, wenn sich der Administrator abgemeldet hat.

Syntax

Die Syntax des nohup-Befehls lautet:

# nohup {command/script}

Wenn beim Ausführen des nohup-Befehls der folgende Fehler auftritt:

nohup: command not found

Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren:

Verteilung Befehl
OS X brew install coreutils
Debian apt-get install coreutils
Ubuntu apt-get install coreutils
Alpin apk Coreutils hinzufügen
Arch Linux pacman -S coreutils
Kali-Linux apt-get install coreutils
CentOS yum installiere coreutils
Fedora dnf installiere coreutils
Raspbian apt-get install coreutils

Beispiele

1. Ausführen von nohup ohne Angabe einer Ausgabedatei

Lassen Sie uns ein Beispiel machen und testen, ob es tatsächlich weiter funktioniert, nachdem Sie sich abgemeldet haben. Wir starten ein Skript namens script.sh. Der Inhalt des Skripts ist wie folgt:

# cat script.sh
#!/bin/sh
while(true)
do
	echo "Hello World!"
	sleep 10
done

Lassen Sie uns das Skript in backgroupd mit dem Befehl nohup ausführen:

# nohup script.sh & 
[1] 179 
$ nohup: appending output to `nohup.out`

Wie Sie oben sehen können, haben wir keine Ausgabedatei angegeben. Daher gehen die Standardausgabe und der Standardfehler standardmäßig in die Datei nohup.out in dem Verzeichnis, aus dem das Skript aufgerufen wurde. Auch die Nummer 179 Gibt die Prozess-ID (PID) des Jobs an. Diese PID kann in der Ausgabe des Befehls „ps -ef“ wie unten gezeigt überprüft werden.

Verlassen Sie nun die Shell, melden Sie sich erneut an und führen Sie den folgenden Befehl aus:

$ ps x | grep script.sh
179  ?   S N  0:01 sh /root/script.sh 
506  p2 S     0:00 grep script.sh

Das Skript funktioniert noch. Verwenden Sie „ps -ef | grep ps1“, wenn Ihr System ps x nicht unterstützt. Sie können auch die Ausgabedatei nohup.out auf weitere Bestätigung überprüfen.

# cat nohup.out
Hello World!
Hello World!
Hello World!
Hello World!
...
HINWEIS :Wenn Sie einen anderen Befehl mit nohup ausführen, wird die Ausgabe an die vorhandene nohup.out-Datei angehängt. Seien Sie vorsichtig, wenn Sie mehrere Befehle aus demselben Verzeichnis ausführen, da die gesamte Ausgabe an dieselbe nohup.out-Datei gesendet wird, was verwirrend werden kann.

Ausführen von nohup unter Angabe einer Ausgabedatei

Jetzt kann das obige Skript auch mit dem nohup-Befehl ausgeführt werden und eine benutzerdefinierte Ausgabedatei angeben, wie unten gezeigt:

# nohup script.sh > /tmp/script.out 2>&1
[1] 14235

Schlussfolgerung

Wenn Sie einen Prozess ausführen und nicht glauben, dass er abgeschlossen sein wird, wenn Sie sich für den Tag abmelden, verwenden Sie den Befehl nohup. Nohup setzt die Verarbeitung fort, wenn Sie Ihr Konto verlassen. Nohup bedeutet nicht auflegen .


Linux
  1. Subscription-Manager:Befehl nicht gefunden

  2. dnf:Befehl nicht gefunden

  3. bc:Befehl nicht gefunden

  4. dpkg:Befehl nicht gefunden

  5. id:Befehl nicht gefunden

nc:Befehl nicht gefunden

aws-shell:Befehl nicht gefunden

kubectl:Befehl nicht gefunden

tvservice:Befehl nicht gefunden

ln:Befehl nicht gefunden

realpath-Befehl nicht gefunden