我有一个带有远程VLC的树莓派。 VLC这样启动:
cvlc --force-dolby-surround --play-and-exit --loop --volume-step 256 -I rc --rc-host 192.168.1.10:1250
我想与此VLC实例进行交互,例如更改音量。 在腻子终端上,如果我发送以下命令,则一切正常:
$ echo "volume 80" | nc 192.168.1.10 1250 > /dev/null 2>&1 &
我需要指定> /dev/null 2>&1 &
,否则VLC提示将保持焦点。我不知道这可能是我问题的根本原因!
在PHP页面中,我尝试运行此代码:
<?php
exec('echo "volume 80" | nc 192.168.1.10 1250 > /dev/null 2>&1 &', $output, $return);
var_dump($output);
var_dump($return);
?>
命令已正确执行,但是$output
和$return
为空。我认为这是正常的,因为如上所述,我指定了> /dev/null 2>&1 &
,如果我未指定此参数,则VLC提示会一直保持焦点,并且我的PHP页面正在无休止地运行...
在第二种情况下,我需要从VLC远程获取信息。
$ echo "status" | nc 192.168.1.10 1250
所以我一定不要加> /dev/null 2>&1 &
,因为我想退货!但是在那种情况下,PHP会无限运行:
<?php
exec('echo "status" | nc 192.168.1.10 1250', $output, $return);
var_dump($output);
var_dump($return);
?>
$output
和$return
变量中没有任何信息。