definierten Prozess killen



  • Hallo,

    ich habe mal zeit gefunden mein Projekt weiter zu coden, aber ich habe das Problem, das

    int rc=execle("/home/alex/entw/MEINPROGRAMM2","MEINPROGRAMM2",NULL);
    

    funktioniert ... echt nicht, es kommt nur ein Returncode von -1 😕 😕
    hat jemand ein Idee, was das sein könnte, Berechtigungen von MEINPROGRAMM2 sind 777 ... zum testen okay.

    Hilfe!!!

    Gruss Alex



  • du benutzt execle falsch. Was du willst ist glaube ich execl (Bedenke, das execle auch noch einen Parameter für die Environment verlangt!)

    Ansonsten solltest du _immer_ auch den Wert von errno angeben (oder am besten mittels perror direkt eine lesbare Fehlermeldung), wenn eine Funktion fehlschlägt. Wenn exec* -1 zurück gibt, kann das so gut wie alles bedeuten!



  • rüdiger schrieb:

    du benutzt execle falsch. Was du willst ist glaube ich execl (Bedenke, das execle auch noch einen Parameter für die Environment verlangt!)

    Hallo rüdiger, stimmt.
    Mit

    rc=execl("./MEINPROG2","./MEINPROG2",(char *) 0);
    

    Funktioniert es 🙂

    Danke Gruss Alex 🕶



  • Du willst nicht execle sondern execlp benutzen. Oder genauer gesagt:

    int rc=execle("/home/alex/entw/MEINPROGRAMM2","MEINPROGRAMM2", (char *) 0);
    


  • asha schrieb:

    Du willst nicht execle sondern execlp benutzen. Oder genauer gesagt:

    int rc=execle("/home/alex/entw/MEINPROGRAMM2","MEINPROGRAMM2", (char *) 0);
    

    Natürlich Käse sondern:

    int rc=execlp("/home/alex/entw/MEINPROGRAMM2","MEINPROGRAMM2", (char *) 0);
    

    Gruß



  • hallo asha,

    danke ...werd es gleich mal checken ...

    Gruss Alex 🕶 δ



  • ne, execl ist schon richtig. execlp geht ja ähnlich wie die Shell vor und durchsucht die PATH-Variable, aber er gibt ja eh einen absoluten Pfad an.



  • Hallo,

    das Programm funktioniert perfekt, aber jedesmal wenn ich das Child kille, habe ich einen Zombie-Prozess, ich weiss, das Ding ist tot und belegt nur eine ProzessID, aber ich empfinde das als unschön 👎 *lach*
    Ich habe mal gegoogelt und das gefunden:

    Nun, der Prozeß moechte seinem Parent noch den Exit-Status übergeben. Damit der Parent auch weiß, welches Kind ihm diesen Status schickt, muß der Prozeß seine Prozessnummer behalten, bis der Parent den Status gelesen hat.

    Wenn der Parent aber ein Rabenvater ist und die letzten Worte seines Kinds nicht hören möchte, dann geistert der tote Prozeß als Zombie weiter durch das System, solange bis er den Exit-Status doch noch bei seinem Parent abliefern kann.

    Wie kann ich das Realisieren , das mein Programm kein Rabenvater ist und den Exit-Status abfragen kann, das der Kindeszombie weg ist? 😕

    Danke für Eure Hilfe

    Gruss ALex 🙂





  • Danke, werd ich gleich mal checken.
    Mir ist bloss mein Entwicklungsserver gestorben 👎

    Danke für die Hilfe

    Gruss ALex 🙂


Anmelden zum Antworten