Leben des Hintergrundprogramms

Leben des Hintergrundprogramms

Wenn Sie im Terminal mit der Option & ein Hintergrundprogramm starten, wird es beendet, wenn Sie das Terminal schließen?

Antwort1

Es hört auf, wenn Sieauflegendas Terminal. Terminals haben nicht unbedingt das Konzept,geschlossen.

Mit einem TerminalEmulatorprogramm, es wird nicht wirklich etwas aufgehängt, aber das Schließen des Emulatorprogramms löst ein emuliertes Terminal-Aufhängen aus. (Genauer gesagt: Das Schließen der Master-Seite des Pseudo-Terminalgeräts gilt als Terminal-Aufhängen auf der Slave-Seite.) Nicht alle Emulatorprogramme haben die Vorstellung, geschlossen zu werden. Dasjenige, das in den Betriebssystemkernel eingebaut ist und den Kernel mit denvirtuelle Terminals, kann beispielsweise nicht „geschlossen“ werden.

Bei einem realen Terminal gibt es einen seriellen Anschluss mit einer Trägererkennungsleitung und einen echten Modem-Auflegevorgang, der auftreten kann, wenn der Einwählbenutzer am Remote-Terminal die Telefonverbindung auflegt.

Dies alles stammt aus der Zeit der Time-Sharing-Systeme mit Remote-Terminals, bei denen den Benutzern die Nutzung in Rechnung gestellt wurde. Wenn jemand versehentlich seine Telefonverbindung verlor, wollte er ganz sicher nicht für Programme bezahlen müssen, die möglicherweise bis zum nächsten Systemneustart noch liefen. Umgekehrt wollten Systemadministratoren und andere Benutzer nicht, dass Programme noch liefen und an nun theoretisch freie Terminals angeschlossen waren, die dann möglicherweise anderen Einwahlbenutzern zugewiesen werden könnten.

Seitdem hat sich viel geändert. Die BSD-Jobsteuerung hat beispielsweise Änderungen bei der Verteilung des Hangup-Signals und die Einführung des Konzepts einesSitzungsleiterder für die Jobs innerhalb einer Login-Sitzung verantwortlich ist und dessen Tod als vernichtender Schlag für diese Jobs angesehen wird. Wir haben Remote-Login über das Internet erhalten, und die Idee einesGUI-Anmeldesitzung. Und Terminalemulatorprogramme sind so weit verbreitet, dass die Leute sie mit den Terminals verwechseln, die sie sindemulieren.

Die Grundidee bleibt jedoch bestehen, dass Benutzerprozesse im Normalfall – irgendwie, wenn auch durch Vermittlung eines Sitzungsleiters – beendet werden, wenn ihre Terminalsitzung endet.

Antwort2

BesuchenAusführen von Programmen im Hintergrund vom Terminal ausoderWas ist der effizienteste Weg, ein Programm vom Terminal aus zu starten und zu trennen?

Wenn Sie im Terminal mit der Option & ein Hintergrundprogramm starten, wird es beendet, wenn Sie das Terminal schließen?

Ich finde, dass das Schließen gnome-terminaldurch Klicken auf die Schaltfläche „Schließen“ zum Anhalten/Beenden des Programms führen kann.Aberwenn Sie das Terminal schließen durchexitBefehl, dann wird das Programm nicht geschlossen/gestoppt/beendet.

Antwort3

Ja, es wird gestoppt. Um zu verhindern, dass das Programm gestoppt wird, verwenden Sie nohup.

Beispielsweise nohup firefox > /dev/null 2>&1 &ermöglicht es, Firefox im Hintergrund laufen zu lassen, ohne es zu schließen, und verhindert, dass Fehler/Ausgaben auf der Konsole angezeigt werden.

verwandte Informationen