Я хочу запустить scilab с модулем BackDoor из скрипта PHP. (https://atoms.scilab.org/toolboxes/BackDoor/0.2)
Когда я запускаю команду в терминале
sudo scilab-adv-cli
результат что-то вроде
opening BackDoor
BackDoor: listening to commands on TCP port 27020
и scilab все еще работает, и я могу подключить его из октавы.
Но я хочу запустить это из API. Когда я бегу в сценарии PHP
$result = shell_exec("sudo scilab-adv-cli 2>&1");
$ результат
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», а не «Убитый«. Когда я запускаю никогда не заканчивая время, процесс будет отображаться в списке команды» top «в терминале, пока я не убью его. С модулем BackDoor процесс будет отображаться только несколько секунд, а затем завершится.
Я старался:
Я также пытался бежать никогда не заканчивается
$result = shell_exec("sudo scilab-adv-cli -e "i = 1; while i < 10 disp("i"); end; " 2>&1");
но через несколько секунд после запуска scilab, он убит. В последнем случае много раз показывалось «1. \ n \ n», а затем «BackDoor: прослушивание подключений по TCP-порту 27020. Killed».
Я разработчик этого модуля. Проблема, вероятно, в том, что Backdoor открывает порт TCP для получения соединений. Проверьте ваш PHP-модуль, чтобы узнать, есть ли у него разрешение на открытие такого порта.
Других решений пока нет …