Ich hoffe ich hab hier den richtigen Thread erwischt
Ich häng gerade vor einem mir scheinbar unlösbaren Problem.
Kurze Erklärung:
Ich hab vor ein kleines Audio-Player Frontend zu basteln, der auf einem Unix-Server (Debian) läuft (der Server gibt Audio wieder).
Das Frontend wird über PHP laufen. Es soll auch möglich sein, Streamadressen abzuspeichern und nach wahl wiederzugeben.
In meinem Fall jetzt 1Live Web MP3 Stream.
Da PHP mittels "exec('mpg123 http://1live.akacast.akamaistream.net/7 ... .net/1live')" die weitere Ausführung stoppt, bis der mpg123 Prozess getötet wird, hab ich mich im Web nach Ausführungsalternativen erkundigt.
Die einzigste funktionierende Lösung ist für mich momentan mittels "exec('perl /pfad/zur/datei.pl')" ein Perl Script auszuführen, was den mpg123 Prozess im Hintergrund ausführt (damit ich mit PHP weiterarbeiten kann):
Code: Alles auswählen
#!/usr/bin/perl
close STDOUT;
close STDERR;
close STDIN;
fork() && exit 0;
`mpg123 http://1live.akacast.akamaistream.net/7/706/119434/v1/gnl.akacast.akamaistream.net/1live 2>&1 /var/www/vhosts/project/system/cmd/result.txt`;
Leider wird die Ausgabe nicht in die gewünschte Datei "result.log" umgeleitet.
Ich hab auch schon verschiedene Methoden (2>),(2>&1),(> /var/../.result.log &) ausprobiert, komme aber immer zu der Erkenntniss:
1.) Entweder die Umleitung funktioniert, aber PHP wird in der weiteren Ausführung gestoppt, bis der mpg123 Prozess getötet wird, oder
2.) Die Umelitung funktioniert nicht, aber PHP kann weiter genutzt werden (Der mpg123 Prozess läuft wie gewünscht "nebenbei")
Wie bekommt man es hin, dass ich den mpg123 Prozess nebenbei starten/laufen lassen kann, UND die Ausgabe des mpg123 Prozesses in eine Datei weiterleiten kann, welche ich bei Bedarf mit PHP auslesen kann?
Viele Grüße
exxecc