我想用PHP脚本中的BackDoor模块运行scilab。 (https://atoms.scilab.org/toolboxes/BackDoor/0.2)
当我在终端
中运行命令时sudo scilab-adv-cli
结果类似于
opening BackDoor
BackDoor: listening to commands on TCP port 27020
并且scilab仍然是runnig,我可以从octave连接它。
但我想从API运行它。当我在PHP脚本中运行时
$result = shell_exec("sudo scilab-adv-cli 2>&1");
$ result是
Start
... (loading things)
Opening back door
BackDoor: listening to connections on TCP port 27020
Killed
我需要显示结果中最后一行的命令中的2>& 1。 (http://php.net/manual/en/function.shell-exec.php#106250)
我不知道为什么会这样。如果没有安装模块BackDoor,结果是" \ n \ n",而不是" Killed "。当我运行永不结束时,该过程将显示在命令列表中#top; top"在终端,直到我杀了它。使用BackDoor模块进程只会显示几秒钟然后结束。
我试过了:
我也试过在
时永远不会结束$result = shell_exec("sudo scilab-adv-cli -e "i = 1; while i < 10 disp("i"); end; " 2>&1");
scilab开始后几秒钟就被杀死了。在最后一个案例中被多次展示&#34; 1. \ n \ n&#34;然后&#34; BackDoor:在TCP端口27020上侦听连接。已杀死&#34;。
答案 0 :(得分:0)
我是这个模块的开发人员。问题可能是Backdoor打开一个TCP端口来接收连接。检查您的PHP模块,看它是否有权打开这样的端口。