У меня есть следующие настройки: в Mac OS X Apache вызывает скрипт PHP, который использует system
функция для вызова скрипта Matlab, который, в свою очередь, имеет свой собственный system
вызов для вызова некоторых команд оболочки.
Тем не менее, кажется, что на самом деле команды не выполняются (я попробовал простое эхо в файл), и когда я пытаюсь захватить вывод команды, используя [status, cmdout] = system()
подпись, status
а также cmdout
в конечном итоге будет пустым.
Этого не происходит, если я запускаю скрипт Matlab вручную из командной строки (echo и все остальные system
звонки идут как обычно).
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Код PHP:
$system_call_string_2 = "matlab -nosplash -nodesktop -r 'run ../users/".$user."/projects/".$project."/processing.m' > /dev/null &";
system($system_call_string_2);
processing.m вызывает функцию из файла с именем data_file_load_online.m:
system(['grep "CGHv1_Ca_\|CGH_Ca_" ' file_dir '/' file_name ' > ' file_dir '/CGH_rows.xls']);
Чтобы было ясно, я уже проверил, что этот код достигнут, правильный путь, подставил команду для эха в файл и запустил скрипт Matlab вручную, чтобы убедиться, что он работает таким образом.
Задача ещё не решена.
Других решений пока нет …