Anzeige:
Ergebnis 1 bis 6 von 6

Thema: ProcessBuilder und forkende Prozesse

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.01.2004
    Beiträge
    27

    ProcessBuilder und forkende Prozesse

    Hallo zusammen,
    Ich bin gerade an einem Problem, bei dem ich nicht genau weiss wie oder überhaupt ob sich dieses lösen lässt. Es geht sich um folgendes:
    Aus meiner Applikation starte ich einige Prozesse mit der Klasse ProcessBuilder. Das klappt an sich auch wunderbar. Dummerweise forken diese Prozesse, was für meinen ProcessBuilder heisst, dass der eigentlich Prozess als terminiert angesehen wird, der Child-Prozess jedoch läuft, aber eben detached.
    Kann ich den Child-Prozess dennoch irgendwie unter Kontrolle meiner Applikation behalten?

    Gruss

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    ich benutze für das Ausführen externer Programme immer die Runtime-Klasse, also ungefähr so:
    Code:
    Process myProcess = Runtime.getRuntime().exec("dasKommando mit Parametern");
    ...
    myProcess.waitFor(); 
    int exVal = myProcess.exitValue();
    Jan

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.04.2003
    Beiträge
    194
    Hallo!

    Habe ein ähnliches Problem / Use-Case:
    Siehe diesen Bug (der wahrscheinlich auch nicht gefixt wird bzw. werden kann): http://bugs.sun.com/bugdatabase/view...bug_id=4770092

    MfG,
    Matthias
    Going to church does not make a person religious, nor does going to school make a person educated, any more than going to a garage makes a person a car.

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von Silver Beitrag anzeigen
    ...Habe ein ähnliches Problem / Use-Case:
    Siehe diesen Bug (der wahrscheinlich auch nicht gefixt wird bzw. werden kann): http://bugs.sun.com/bugdatabase/view...bug_id=4770092
    Hm, dieses Problem scheint aber auf Windows beschränkt zu sein. Ich bin mir nicht sicher, ob das die gleiche Ursache hat. Welches OS McHurt einsetzt, hat er leider nicht beschrieben. Unter unixoiden Systemen kannst Du IIRC das Verhalten von Child-Prozessen beim Abmurksen des Papa per trap beeinflussen.

    Jan

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.04.2003
    Beiträge
    194
    Hallo!

    Das Problem bei der ganze Sache ist IMHO, dass es zwar mehrere (funktionierende) Möglichkeiten gibt Child Prozesse von einem Prozess rauszufinden und diese zu killen, aber die sind
    a) platformspezifisch
    b) nicht unbedingt sicher
    c) WER garantiert mir, oder besser gesagt WIE garantiere ich meinem Kunden, dass bei absolutem jedem Zeitpunkt (und auf jeder beliebiger Platform), jedes beliebige Programm auch wirklich *sofort* zu arbeiten aufhört!

    Und deswegen denke ich auch, dass SUN nicht so schnell den oben genannten Bug resolven werden, weil dann muss SUN gewährleisten, dass der Prozessabbruch auch immer funktioniert.

    Matthias
    Geändert von Silver (11-01-2008 um 14:42 Uhr)
    Going to church does not make a person religious, nor does going to school make a person educated, any more than going to a garage makes a person a car.

  6. #6
    Registrierter Benutzer
    Registriert seit
    14.01.2004
    Beiträge
    27
    Hi zusammen,
    Ich bin nach wie vor an dem Problem. Als OS benutze ich Windows 2k3 sowie Solaris 10. Mittlerweile überlege ich mir schon, das ganze halt platformspezifisch zu implementieren, sprich auf Solaris mit exec, ps usw. und auf Windows.. keine Ahnung, mus ich mir noch genauer anschauen.
    Das Problem ist wirklich dasjenige, dass wenn ich einen Prozess starte und dieser forkt, bekomme ich als Exit-Value den return des fork() und verliere die Kontrolle über den Child, bzw. der Child ist nicht mehr in meinen Process-Objekt.

    Gruss

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •