Hallo Zusammen,
ich habe ein Problem mit der exec()-Funktion im EXEC Bereich eines LBS. Ich versuche den return code des aufgerufenen Programms auszuwerten. Das merkwürdige ist, dass ich im LBS eine 1 bekomme und in einer PHP-Datei im www-Verzeichnis von Edomi eine 0. Hier die Codeschnipsel:
LBS EXEC-Teil:
Hier meine Test-Datei aus dem www-Verzeichnis:
Der LBS erzeugt Logeinträge, also ist $returnCode != 0 und die Testdatei gibt aus, dass $returnCode == 0 ist.
Hat jemand eine Idee? Meine letzte Vermutung ist jetzt, dass sich das Programm anders verhält, wenn es aus dem EXEC-Bereich aufgerufen wird. Vielleicht ein Rechteproblem?
ich habe ein Problem mit der exec()-Funktion im EXEC Bereich eines LBS. Ich versuche den return code des aufgerufenen Programms auszuwerten. Das merkwürdige ist, dass ich im LBS eine 1 bekomme und in einer PHP-Datei im www-Verzeichnis von Edomi eine 0. Hier die Codeschnipsel:
LBS EXEC-Teil:
PHP-Code:
if (json_last_error() === JSON_ERROR_NONE)
{
$command = $vc_pfad.'vclient -h '.$ip.':'.$port.' -f '.$pfad_commands.' -t '.$pfad_template.' -o '.$pfad_status.' 2>&1';
unset($output);
unset($returnCode);
logging($id, "Command: $command");
exec($command, $output, $returnCode);
if ($returnCode != 0)
{
logging($id, "FEHLER bei Kommando: $command", $output, 2);
logging($id, "vclient - Rückgabewert $returnCode", $output, 2);
}
else
{
logic_setOutput($id, 2, file_get_contents($pfad_status));
logging($id, "Ausgabe JSON String: ".file_get_contents($pfad_status), 5);
}
}
else
{
logging($id, "FEHLER - Ungültiger JSON-String", 2);
logging($id, json_last_error_msg(), 2);
}
PHP-Code:
<?php
$cmd = "/usr/local/edomi/main/vcontrol/vclient -h localhost:3002 -f /usr/local/edomi/main/vcontrol/template/2190-vc-commands.txt -t /usr/local/edomi/main/vcontrol/template/2190-vc-status.tmpl -o /usr/local/edomi/main/vcontrol/template/2190-vc-status.json 2>&1";
exec($cmd,$output, $returnCode);
print( 'output:');
var_dump($output);
print( "<br>");
print( "<br>");
print( 'returnCode:');
var_dump($returnCode);
print( "<br>");
print( "<br>");
if ($returnCode != 0)
echo "!= 0";
else
echo "== 0";
Hat jemand eine Idee? Meine letzte Vermutung ist jetzt, dass sich das Programm anders verhält, wenn es aus dem EXEC-Bereich aufgerufen wird. Vielleicht ein Rechteproblem?
Kommentar