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

Asynchrone Shell-Befehle

Alternativ können Sie, nachdem Sie das Programm zum Laufen gebracht haben, Strg-Z drücken, was Ihr Programm stoppt, und dann

eingeben

bg

Dadurch wird Ihr zuletzt gestopptes Programm in den Hintergrund gestellt. (Nützlich, wenn Sie etwas ohne '&' gestartet haben und es immer noch im Hintergrund haben möchten, ohne es neu zu starten)


nohup cmd

legt nicht auf, wenn Sie das Terminal schließen. Die Ausgabe geht standardmäßig nach nohup.out

Sie können dies mit einem Hintergrund kombinieren,

nohup cmd &

und die Ausgabe loswerden,

nohup cmd > /dev/null 2>&1 &

Sie können auch disown Ein Kommando. geben Sie cmd ein , Ctrl-Z , bg , disown


Sie können das Skript einfach im Hintergrund ausführen:

$ myscript &

Beachten Sie, dass sich dies vom Setzen des & unterscheidet in Ihrem Skript, das wahrscheinlich nicht das tut, was Sie wollen.


Alle haben einfach disown vergessen . Hier also eine Zusammenfassung:

  • & setzt den Job in den Hintergrund.

    • Lässt es beim Versuch, Eingaben zu lesen, blockieren und
    • Sorgt dafür, dass die Shell nicht auf ihre Fertigstellung wartet.
  • disown entfernt den Prozess aus der Jobsteuerung der Shell, lässt ihn aber weiterhin mit dem Terminal verbunden.

    • Eines der Ergebnisse ist, dass die Shell kein SIGHUP sendet (Wenn die Shell einen SIGHUP empfängt , es sendet auch einen SIGHUP an den Prozess, was normalerweise dazu führt, dass der Prozess beendet wird).
    • Und natürlich kann es nur auf Hintergrundjobs angewendet werden (weil Sie es nicht eingeben können, wenn ein Vordergrundjob läuft).
  • nohup trennt den Prozess vom Terminal, leitet seine Ausgabe auf nohup.out um und schirmt es von SIGHUP ab .

    • Der Prozess erhält keinen gesendeten SIGHUP .
    • Es ist völlig unabhängig von der Jobsteuerung und könnte im Prinzip auch für Vordergrundjobs verwendet werden (obwohl das nicht sehr nützlich ist).
    • Wird normalerweise mit & verwendet (als Hintergrundjob).

Linux
  1. Alle Befehle auflisten, die eine Shell kennt?

  2. Wie ändere ich die Cron-Shell (sh in Bash)?

  3. Führen Gui-basierte Anwendungen Shell-Befehle im Hintergrund aus?

  4. Ausführen von Linux-Befehlen im Hintergrund und Vordergrund

  5. 15 nützliche integrierte Bash Shell-Befehle (mit Beispielen)

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

So führen Sie Linux-Befehle im Hintergrund aus

Cluster-Shell-Befehle

Gibt es eine Möglichkeit, Shell-Befehle auf Android programmgesteuert auszuführen?

Wie führe ich ein Skript im Hintergrund aus (Linux OpenWRT)?

nohup mehrere aufeinanderfolgende Befehle