Tests erforderlich
bearbeitet von Raketenwilli~~~php,bad
<?php
### File: vater2.php
header('Content-Type:text/plain');
$pid = exec("kind.sh 3 > /dev/null & echo $!");
echo $pid . PHP_EOL;
$pid = exec("kind.sh 4 > /dev/null & echo $!");
echo $pid . PHP_EOL;
exit;
~~~
~~~BASh,bad
#!/bin/bash
### File: kind.sh
### Caution! This will never ending!
echo -n "$$ $0 $*" > "/tmp/$1.pid";
nr=$1;
while [ 1 -eq 1 ]; do
echo -n $1 >> "/tmp/${nr}";
echo -n ": " >> "/tmp/${nr}";
date >> "/tmp/${nr}";
echo "" >> "/tmp/${nr}";
sleep 1;
done
~~~
sollte tun und tut auch wenn ich es wie beschrieben wie mit `at` mache.
(Nach Aufruf im Browser)
~~~
ps ax | krep kind.sh
~~~
findet die beiden Prozesse.
~~~
ls tmp[1-9]*
~~~
findet aber nichts. Es müsste je eine Datei 3, 3.pid, 4 und 4.pid aufscheinen und natürlich einen Inhalt haben.
Hm. Bei meiner Version (auch im Browser gestartet) läuft das Skript, die Dateien 1, 1.pid, 2, 2.pid werden angelegt und „gefüttert“. Ich suche später weiter, warum der Mix aus Deiner Version des „Vaterprozesses“ und meinem „Kindprozess“ nichts tut - obwohl er sollte.
Kannst ja mal untersuchen, was Dein Kind-Prozess tut: Kann der in Dateien schreiben?