如何执行一个运行日志时间的cmd命令

时间:2014-01-09 13:57:04

标签: php phantomjs shell-exec

当我使用phantomjs制作服务器时,该文件会长时间打开。 我使用此代码与php:

的excute phantomjs
exec('phantomjs server.js');

ans例如phantomjs服务器文件是

if (system.args.length !== 2) {
    console.log('Usage: server.js <some port>');
    phantom.exit(1);
} else {
    port = system.args[1];
    var listening = server.listen(port, function (request, response) {
        console.log("GOT HTTP REQUEST");
        console.log(JSON.stringify(request, null, 4));

        // we set the headers here
        response.statusCode = 200;
        response.headers = {"Cache": "no-cache", "Content-Type": "text/html"};
        // this is also possible:
        response.setHeader("foo", "bar");
        // now we write the body
        // note: the headers above will now be sent implictly
        response.write("<html><head><title>YES!</title></head>");
        // note: writeBody can be called multiple times
        response.write("<body><p>pretty cool :)</body></html>");
        response.close();
    });

因为phantomjs服务器长时间回答并退出它,我无法运行下面执行行的其他代码。

是从php运行它的任何方式..?


问题解决:

$WshShell = new COM("WScript.Shell");
$run_cmd = "cmd c:/xampp/php/php.exe c:/xampp/htdocs/Gashash/batch_test.php";
$WshShell = $WshShell->Run($run_cmd, 0, false);

1 个答案:

答案 0 :(得分:1)

您可以在后台运行脚本。但你失去了对这个过程的控制权。

exec('phantomjs server.js > /dev/null &');

您还可以使用beanstalk / Gearman之类的内容来分隔这两个流程。