NoHup und Bildschirm funktionieren nicht, wenn das Programm im Hintergrund ausgeführt wird?

NoHup und Bildschirm funktionieren nicht, wenn das Programm im Hintergrund ausgeführt wird?

Ich weiß nicht warum, aber mein screenauf dem Server ausgeführter Befehl stoppt von selbst. Deshalb habe ich versucht, zu verwenden nohup. Beispiel:

nohup bzcat a.bz

Aber beim Laufen nohupgibt es mir

nohup: ignoring input and appending output to `nohup.out'

Um fortzufahren, führe ich außerdem Folgendes aus:, fgwas mir Folgendes gibt:

-bash: fg: current: no such job

Antwort1

Die Meldung von nohupist vollkommen in Ordnung. Sie erklärt nur, was sie tut. Wenn Sie ein Programm mit nohup ausführen, verwendet es nicht mehr, was Sie auf dem Terminal eingeben, und es gibt auch nichts auf dem Terminal aus. nohupleitet die Ausgabe des Programms in eine Datei namens um nohup.out.

Und es ist etwas ganz anderes, als nohupein Programm im Hintergrund laufen zu lassen (im Hintergrund laufen wäre bzcat a.bz &). Wenn ein Programm im Hintergrund läuft, ignoriert es die Eingabe vom Terminal (nur das im Vordergrund laufende Programm kann das verwenden, was Sie in das Terminal eingeben, deshalb wird es „Vordergrund“-Prozess genannt, weil es derjenige ist, mit dem Sie tatsächlich interagieren), aber es gibt an das Terminal aus. Es ist möglich, ein Programm sowohl im Nohup-Modus als auch im Hintergrund laufen zu lassen. Tatsächlich wird normalerweise diese Art nohupverwendet. Wenn Sie nohupein Programm haben, es aber nicht im Hintergrund starten, können Sie fges nicht aufrufen, weil es eigentlich nicht im Hintergrund läuft. Es gibt einfach nichts an das Terminal aus.

nohupermöglicht Ihnen, ein Programm in einem Modus auszuführen, in dem es Signale ignoriert HUP. Terminals senden normalerweise HUPSignale, wenn Sie das Terminal schließen. Ein im Hintergrund im Nohup-Modus laufendes Programm wird also nicht gestoppt, wenn Sie das Terminal schließen, in dem Sie es gestartet haben.

verwandte Informationen