Moien
(Das hier wird ein local eingesetzter Server, man kann alle Sicherheitsbedenken getrost über Bord werfen. Es ist Linux. Und es ist ein Beispiel, das kill soll später auf userwunsch möglich sein.)
Ich versuche zu verstehen was folgenden Code davon abhält zu funktionieren:
exec('sh -c "sleep 120; touch /mnt/HD/pid/iwashere" \> /dev/null 2\>&1 & echo $! \> /mnt/HD/pid/pid 2\>&1');
echo "PID: ";
$pidfile = file ("/mnt/HD/pid/pid");
$pid = $pidfile[0];
$pid = trim ($pid);
echo $pid."
";
echo "kill -9 ".$pid;
echo exec('kill -9 ' + $pid);
echo "
kill done";
In der ersten Zeile starte ich eine shell die um 2 Minuten verzögert eine Action ausführen soll. Der Rest der Zeile speichert die PID der shell in einer Datei. Die PID wird wieder einlesen und soll dann per kill -9 abgeschossen werden. Das klappt aber nicht, die Shell läuft fröhlich weiter. Die PID stimmt, auf Console lässt sie sich auch mit kill abschiessen. Beide exec’s sollten als der user laufen.
Was hält php davon ab das kill auszuführen ?
posix_kill funktioniert bestens, aber trotzdem will ich wissen wieso das exec ('kill …nicht funktionert.
Danke