Ankündigung

Einklappen
Keine Ankündigung bisher.

Thread soll kill des Hauptprozesses erkennen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Thread soll kill des Hauptprozesses erkennen

    Hallo,

    wie kann ich in einem Thread erkennen, wenn der Hauptprozess, der als Daemon läuft, z.B. durch ein Kill beendet wurde?

    Code:
    <?php
    
    class MyThread extends Thread {
    
        public function __construct() {
    
        }
    
        public function run() {
            do {    
    
            } while (TRUE);
        }
    
    }


  • #2
    Was interssiert Dich das ?
    Wenn der Parent tot ist, bleibt das Chil d eh nur am Leben, wenn er ein sog Deamon ist.
    nebenbei, lies bitte das Announce zu dem fortgeschrittenen Forum.

    Kommentar


    • #3
      Weil es sich um einen Daemon handelt.

      Kommentar


      • #4
        Wenn der Prozess beendet wird, dann werden auch seine Threads beendet. Natürlich solltest du entsprechende Kill Signale abfangen und entsprechend behandeln (Thread beenden).

        EDIT:
        Sorry habe Frage etwas falsch verstanden. Aber im Prinzip doch beantwortet.
        Kill Signale abfangen und den Threads weitergeben.
        "Software is like Sex, it's best if it's free." - Linus Torvalds

        Kommentar


        • #5
          Zitat von jkcs Beitrag anzeigen
          Weil es sich um einen Daemon handelt.
          Again, Wieso interssiert Dich das? Ein deamon verrichtet sein job und wird beendet wenn sein job nicht mehr gebraucht wird.
          Diese einschätzung ist unabhängig vom parent.

          Kommentar


          • #6
            Es wäre doch unsauber, wenn ich den Prozess beende und dann laufen die Threads weiter. Und es wäre sehr einfach innerhalb des Threads zu prüfen ob der Prozess noch existiert und dann ggf. den Thread zu beenden. Deshalb frage ich, ob das geht. Wenn nicht muss ich halt eine andere Lösung suchen.

            Kommentar


            • #7
              Zitat von jkcs Beitrag anzeigen
              Es wäre doch unsauber, wenn ich den Prozess beende und dann laufen die Threads weiter. Und es wäre sehr einfach innerhalb des Threads zu prüfen ob der Prozess noch existiert und dann ggf. den Thread zu beenden. Deshalb frage ich, ob das geht. Wenn nicht muss ich halt eine andere Lösung suchen.
              Du solltest dich mit Betriebssystem Grundlagen beschäftigen. Wie ich bereits gesagt habe, werden alle Threads beendet wenn der Prozess beendet wird.
              "Software is like Sex, it's best if it's free." - Linus Torvalds

              Kommentar


              • #8
                Der Prozess wird aber nicht beendet wenn noch Threads laufen. Ich habe jetzt einen Timeout in die Threads eingebaut und jetzt funktioniert es erst mal so wie ich es brauche.

                Kommentar


                • #9
                  Zitat von jkcs Beitrag anzeigen
                  Der Prozess wird aber nicht beendet wenn noch Threads laufen.
                  Siehe #4

                  Zitat von jkcs Beitrag anzeigen
                  Ich habe jetzt einen Timeout in die Threads eingebaut und jetzt funktioniert es erst mal so wie ich es brauche.
                  Good luck with that.
                  "Software is like Sex, it's best if it's free." - Linus Torvalds

                  Kommentar


                  • #10
                    Schau dir mal https://gist.github.com/SirSnyder/c6...fcc08b836a92a7 an. Da gab es mal Probleme mit Sockets, die in der Verarbeitung hingen. Der SignalHandler leitet den SocketServer shutdown ein, die Sockets werden in Abhängigkeit beendet und geschlossen.

                    Kommentar


                    • #11
                      jkcs Was baust du denn da?
                      Ich kenne mich jetzt nicht so wirklich mit PHP-Threads aus, aber das wird nicht so viel anders laufen als bei Java oder C# (von Implementationsdetails mal ganz abgesehen).

                      Die Frage ist deswegen wichtig, weil ein Nebenher-Demon-Thread eigentlich nur in wenigen Fällen wirklich Sinn macht, wenn er sich automatisch mit dem Hauptthread beenden soll.

                      Ansonsten Google mal nach Thread und Poison-Pill. Ich denke aber, dass das hier nicht die geeignete Lösung ist.
                      Standards - Best Practices - AwesomePHP - Guideline für WebApps

                      Kommentar

                      Lädt...
                      X