2017-03-08 6 views
0

Von meiner Website (mit Symphony 3.3) benutze ich $ ssh-> exec, um einen anderen Serveur zu bitten, Video zu transcodieren (mit ffmpeg). Ich arbeite gut, aber ich habe ein Problem.phpseclib callback nach exec

Nach dem Umcodierungsvorgang, erhalte ich von den zweiten Server Informationen (unter Verwendung von $ sft-> erhalten) über die Umcodierung in Protokolldatei von ffmpeg erzeugt (mit> am Ende des CLI) und will das sehen Ergebnis in meiner Webseite.

Das Problem ist: Wenn ich $ sft-> get aufrufen, um die Informationen zu erhalten, wird der Prozess nicht beendet (es kann einige Minuten dauern). Wie kann die Website wissen, dass der Prozess auf dem zweiten Server beendet ist? Ich versuche $ ssh-> exec ($ cli, 'callbak'); ohne Erfolg (Rückruf funktioniert aber zu früh).

Wenn jemand mein Problem versteht und eine Lösung kennt, bitte sag es mir! phpseclib ist ein sehr gutes Paket Ich möchte es behalten. freundlichen Grüßen

Vincent

Antwort

0

Sie werden vielleicht mehr Erfolg haben, wenn Sie so etwas tun:

$ssh->write("[command]\n"); 
$ssh->read('[prompt]'); 

$ssh->get('/path/to/file'); 

$ssh->read blockiert, bis er die Aufforderung in stdout liest. dh. Es wird blockiert, bis [command] die Ausführung beendet hat.