php +shell script+PID

Sziasztok!

Újabb nyomorom van:
Van egy script-em, ami átadott 3 paraméter alapján elindítja a vlc-t.
Így néz ki:
/video/bin/vlc -I dummy udp://@:$1 --color --sout '#std{access=mmsh,mux=asf,dst=192.168.10.23:'$2'/'$3'.wmv}' --ttl 12 && exit 0
Ezt szeretném php-ból indítani úgy, hogy visszakaphassam az indított process pid-jét.
$PID = shell_exec("$Command > /dev/null && echo $!");
Na ez nem jön össze.
Csinált már valaki ilyet?

hemu

Hozzászólások

echo system('ps ax | grep pattern');

a többit kiguglizod


valami && exit 0

bol allo script az pontosan ugyan az mint:


valami

A $! az utolso haterben inditott procesz PIDje ha jol remlik. Ha jol sejtem, ezert nem kapod vissza a PID-et. Alapvetoen az lesz a gond, hogy a PHP meg akarja varni, hogy lefusson a script, es csak aztan ter vissza a shell_exec. Vagyis az egesz blokkolva van amig a vlc le nem fut. Megprobalhatsz vmi ilyet:


vlc ... stb > /dev/null & # <- az & a haterbe kuldesert
echo $!

==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.

Nem az a baj, hogy agyuval losz verebre, hanem az, hogy valami teljesen meghatarozhatatlan eszkozzel. Egyszeruen a shell_exec nem erre valo: visszaadja a lefuttatott parancs kimenetet, (amihez ugye blokkolodnia kell).

Amit te keresel, az a proc_open, a proc_terminate, es a tarsai. Gondolom a PID arra kell, hogy kilodd. A vlc-t viszont gondolom a gombokkal is ki lehet loni, szoval az stdin-jere kuldott megfelelo kimenettel meg is oldottad.

A PHP egy kitunoen dokumentalt nyelv, a php.net-en minden megtalalhato, kommentekkel, peldakkal.

Tudom, hogy nem szep PHP-bol kulso programot hivni, de neha celszeru. Esznel kell lenni.

----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés