0
我试图从drupal网站(运行在Windows的xampp上)启动一个julia程序,它需要在后台运行异步,而php脚本继续执行。这是我想要使用的代码:从apache php stack(在drupal)启动Julia作为后台进程
$juliaFile = escapeshellarg(DRUPAL_ROOT . '/sites/all/modules/tsap/Modeling/runme.jl');
$cmd = "start /B julia $juliaFile";
pclose(popen($cmd, 'r'));
此代码的工作完美,如果我通过命令行PHP脚本运行它,但是当它运行通过Apache,然而,下位这是行不通的的代码都来自从命令行和Web服务器的工作原理(唯一的区别是运行的,而不是朱莉娅程序的PHP脚本)
$phpFile = escapeshellarg(DRUPAL_ROOT . '/sites/all/modules/tsap/Modeling/runme.php');
$cmd = "start /B php $phpFile";
pclose(popen($cmd, 'r'));
我也尝试调用PHP文件中获取的一个代码块由Web服务器执行,也可以从命令行执行,并在服务器尝试执行时失败。
我也得到使用反引号操作符和exec()
(他们阻止在电话会议上),并在同一个问题用COM::run()
结果作为问题pclose(popen())
没有人有获得朱莉娅调用工作任何想法?
感谢您的时间
据我所知,&在windows上不可用,而start/B是另一种选择,无论如何我试过了,它导致了julia和php版本都失败。我也尝试过使用proc_open和proc_close,它们导致与popen和pclose相同的行为,即为后台php进程而不是后台julia进程。 – Velvacaine
如果这样,它不是由子进程调用者函数引起的。这是其他原因。 –