• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Prozess starten und beenden

Tim Lorens

Mitglied
Hay,

ich hatte mal versucht über folgenden Code einen Prozess zu starten und diesen anhand seiner ProzessID wieder zu beenden.
PHP:
$aDescriptorSpec = array (
    0 => array('pipe','r'),
    1 => array('file','test.log','w')
);

$oProcess = proc_open("test.bat", $aDescriptorSpec, $aPipes);
$aStatus = proc_get_status($oProcess);

echo $aStatus["pid"];

exec("taskkill /pid " . $aStatus["pid"]);

Allerdings stimmt die ProzessID nicht. Wie kann ich das lösen, sodass das funktioniert?

-Tim
 
Werbung:
Weshalb bist Du der Annahme die ProzessID stimmt nicht? Sagt das dir eine Fehlermeldung? Oder guckst Du im System direkt nach?
 
Werbung:
Das kann aber auch andere Ursachen haben. Zum Beispiel, das "exec" auf dem Server nicht erlaubt ist.
Und: Hat eine .bat eigendlich eine eigene Prozessid? Oder nicht eher die cmd, die die .bat ausführt? Debugge einfach mal ordentlich deine Variablen, dann sollte das doch schnell klar werden.
 
Erlaubnis hat der Server, testen tu ich das ganze lokal. Wenn ich z.B. notepad.exe starte, wird auch das Fenster gestartet (optische Bestätigung und so nä) nur kann ich das Fenster anhand der von PHP gegebenen ProzessID nicht wieder beenden - egal ob jetzt per exec oder cmd.exe bei mir lokal.
 
oh man..
Welche PID steht den drin in $aStatus["pid"]. Und welchem Prozess entspricht das?
 
Werbung:
Werbung:
Werbung:
Das kann dir keiner beantworten, aber du kannst die PID ja mit deinen laufenden Prozessen vergleichen und demnach musst du entscheiden ob es die richtige ist..
 
Zurück
Oben