respawn code?

Dieses Thema im Forum "C/C++" wurde erstellt von tom, 05.05.2004.

  1. tom

    tom Grünschnabel

    Dabei seit:
    28.04.2004
    Beiträge:
    6
    Zustimmungen:
    0
    hallo.
    ich arbeite gerade an einem kleinen "kiosk-host"! also mp3player und surfstation.
    der user bekommt beim booten alle programme zur verfügung gestellt und sollte sich eines - aus welchem grund auch immer - beenden soll es sofort wieder gestartet werden.

    ich hab das mal ganz "quick & dirty" in perl geschrieben:
    #########################################
    #!/usr/bin/perl -w

    $epid1 = "unset";
    $xpid1 = "unset";

    while (1) {
    sleep 1; #perl is too fast...so we wait one sec
    chomp ($epid = `pidof xclock`);
    chomp ($xpid = `pidof xterm`);

    print " 1 epid $epid epid1 $epid1 \n\n";
    print " 1 Xpid $epid Xpid1 $epid1 \n\n";



    until ($epid eq $epid1) {
    system("xclock &");
    sleep 1; #perl is too fast...so we wait one sec
    chomp ($epid = `pidof xclock`);
    chomp ($epid1 = `pidof xclock`);
    print "epid $epid epid1 $epid1 \n\n";
    }


    until ($xpid eq $xpid1) {
    system("xterm &");
    sleep 1; #perl is too fast for system forks...so we wait one sec
    chomp ($xpid = `pidof xterm`);
    chomp ($xpid1 = `pidof xterm`);
    print "Xpid $xpid Xpid1 $xpid1 \n\n";
    }
    }
    #################################################

    wie die meisten wahrscheinlich sehen is das mit einer while[1] schleife alles andere als die feine englische.

    nun zu meiner frage.
    es sollte doch möglich sein das ganze in C zu realisieren mit semaphore und messagequeues. also das ich irgendein SIG abfange und darauf reagiere.

    leider sind meine C und auch C++ versuche schon sehr lange her und ich weiß nicht so recht wo ich anfangen soll.

    kann mich vielleicht jemand in die richtige richtung schupsen oder mir einen link zu vergleichbaren dinge (doku, etc) geben?
    oder hat einfach nur jemand einen tipp für mich. vielleicht intressierts ja jemand und findet verwendung für sowas. es würde mir natürlich auch freude machen an sowas mit mehr leuten zu "fummeln" :).

    lg
    tom
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. tom

    tom Grünschnabel

    Dabei seit:
    28.04.2004
    Beiträge:
    6
    Zustimmungen:
    0
    aja ich hätts fast vergessen.
    natürlich soll sich nur das programm neustarten das sich beendet hat/wurde.
     
  4. Locke

    Locke Reenigne Esrever

    Dabei seit:
    26.04.2004
    Beiträge:
    69
    Zustimmungen:
    0
    naja ums polling kommste kaum drum herum, ausser du veränderst den ursprünglichen source der anderen programme. der kernel schottet prozesse untereinander ab, könntest höchstens per ipc miteinander kommunizieren lassen, aber da muss halt dann bereits in dem source der programme was vorliegen. andere möglichkeit wäre du schreibst nen programm dass kind prozesse für die einzelnen programme anlegt und beim abschuss diese neu erstellt, aber is nicht ganz ohne.
    denke mal das polling wäre da eine recht einfache und bequeme lösung und dürfte auch nicht soviel rechenzeit fordern.
     
  5. tom

    tom Grünschnabel

    Dabei seit:
    28.04.2004
    Beiträge:
    6
    Zustimmungen:
    0
    danke für die antwort!

    ähm, ich weiß nicht genau was polling ist?
    nennt man die lösung durch die endlosschleife polling?
     
  6. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Polling: Du fragst nach bestimmten Zeitabständen, ob der Prozess noch lebt.
    Poll ist auch ne Abstimmung und Polling ist so ne Art Rumfragerei.
     
  7. #6 HangLoose, 06.05.2004
    HangLoose

    HangLoose kleiner Bruder von ruth

    Dabei seit:
    07.11.2003
    Beiträge:
    319
    Zustimmungen:
    0
    Ort:
    HH
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. tom

    tom Grünschnabel

    Dabei seit:
    28.04.2004
    Beiträge:
    6
    Zustimmungen:
    0
    he danke für die erklärung des pollings.
    hätte ich mein hirn selbst eingeschaltet wär wahrscheinlich selbst draufkommen.

    @hangloose: danke für den link. der is suppa. bringt schon ein bissl einblick wie ich bei dem ganze vorgehen könnte. danke vielmals
     
  10. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Nachtrag zu Polling:
    Polling ist auch das was die aufdringlichen Kellner immer machen:
    "Schmeckt es?"
    "Passt alles?"
    "Haben Sie noch Wünsche?"
     
Thema:

respawn code?

Die Seite wird geladen...

respawn code? - Ähnliche Themen

  1. respawn aus Startscript in /etc/init.d/

    respawn aus Startscript in /etc/init.d/: Hallo zusammen Habe soeben ein init Script in /etc/init.d geschrieben damit mein Programm als Daemon startet. Nun sollte sich dieses...
  2. Free Software Foundation bewertet Codehosting-Dienste

    Free Software Foundation bewertet Codehosting-Dienste: Die Free Software Foundation (FSF) hat Bewertungen nach den selbst definierten Richtlinien für mehrere Codehosting-Dienste herausgegeben....
  3. Debian-Projekte zum Google Summer of Code 2016

    Debian-Projekte zum Google Summer of Code 2016: In insgesamt zehn Projekten schickt Debian 25 Teilnehmer zum GSoC 2016, vier weitere arbeiten im Rahmen des Outreachy-Programms. Die Projekte...
  4. AMD gibt CodeXL 2.0 im Quellcode frei

    AMD gibt CodeXL 2.0 im Quellcode frei: AMD hat sein Debugging- und Profiling-Tool, CodeXL, in der Version 2.0 veröffentlicht. Zugleich hat das Unternehmen die Verfügbarkeit des...
  5. Fraunhofer-Institut veröffentlicht BeeGFS-Quellcode

    Fraunhofer-Institut veröffentlicht BeeGFS-Quellcode: Das parallele Dateisystem BeeGFS wird freie Software. BeeGFS wird seit mehreren Jahren von der ThinkParQ GmbH, einer Ausgliederung des...