我正在尝试从drupal网站(在xampp for Windows上运行)启动julia程序,它需要在后台异步运行,而php脚本继续执行。这是我尝试使用的代码:
$juliaFile = escapeshellarg(DRUPAL_ROOT . '/sites/all/modules/tsap/Modeling/runme.jl');
$cmd = "start /B julia $juliaFile";
pclose(popen($cmd, 'r'));
如果我通过命令行 php 脚本运行它,这段代码可以完美运行,但是当它通过 apache 运行时它不起作用,但是,下一段代码既可以从命令行也可以从 Web 服务器工作(唯一的区别是运行 php 脚本而不是 julia 程序)
$phpFile = escapeshellarg(DRUPAL_ROOT . '/sites/all/modules/tsap/Modeling/runme.php');
$cmd = "start /B php $phpFile";
pclose(popen($cmd, 'r'));
我还尝试调用由 Web 服务器执行的 php 文件中的第一个代码块,该文件也从命令行成功,并在服务器尝试执行它时失败。
我还在使用反引号运算符和exec()
(它们阻止呼叫)时遇到问题,使用COM::run()
会导致与pclose(popen())
相同的问题
有没有人对让朱莉娅打电话工作有任何想法?
感谢您抽出宝贵时间
添加命令的'&'
端,这会将命令放在坑场中。
还可以使用proc_open()
运行命令后台。您还参考了我的帖子,该帖子使用 proc_open() 运行命令后台。