Warum unix-Prozesse im hintergrund manchmal sterben, wenn ich beenden meine shell?

Ich wollte wissen, warum ich da ein anderes Verhalten in den hintergrund-Prozess in der Bash-shell

Fall 1: Angemeldet an Unix-server mit Putty(SSH)

  • Standardmäßig verwendet die csh-shell
  • Wechselte ich in die bash-shell
  • eingegeben sleep 2000 &
  • drücken Sie die EINGABETASTE

Er gab mir die Nummer des Druckauftrags. Nun tötete ich meine Sitzung, indem Sie auf das " x " in das putty-Fenster
Öffnen Sie nun eine weitere Sitzung und versucht, die lookup-Prozess..der Prozess starb.

Fall 2:Fall 1: Angemeldet an Unix-server mit Putty(SSH)
Standardmäßig verwendet die csh-shell

  • Wechselte ich in die bash-shell
  • vi mysleep.sh
  • Schlaf-2000 & Gespeichert mysleep.sh
  • ./mysleep.sh

Diff hier ist..statt der Ausführung der sleep-Befehl direkt ich bin die Speicherung der sleep-Befehl in eine Datei und ausführen der Datei.

Nun tötete ich meine Sitzung, indem Sie auf das " x " in das putty-Fenster
Öffnen Sie nun eine weitere Sitzung und versucht, die lookup-Prozess..der Prozess ist noch da

Nicht sicher, warum dies geschieht. Ich dachte, ich tun müssen, verleugnen in der bash ausführen des Prozesses auch nach der Abmeldung.

Einem diff sehe ich in der parent-Prozess-id. Im zweiten Fall..die parent-Prozess-id für den Schlaf-2000 wird 1. Sieht aus wie so bald als Prozess für mysleep.sh starb der kernel zugewiesen, der Elternprozess 1.

InformationsquelleAutor | 2009-09-23

Schreibe einen Kommentar