【问题标题】:Killing a Node.js program from a shell script从 shell 脚本中杀死 Node.js 程序
【发布时间】:2012-08-02 18:28:40
【问题描述】:

我正在运行一个 node.js 应用程序,它充当中间人代理,以代理我通过 PhantomJS 无头测试环境发出的所有请求。我想从我的 PhantomJS 测试脚本中启动这个代理(尽管我已经研究过了,似乎 phantom 没有用于执行 shell 命令的exec() 命令)或一个管理这两个进程的小型 shell 脚本。理想情况下,它会做类似

#!/bin/bash
node proxy.js
phantomjs runTests.js
kill node process here

有什么办法可以做到吗?

【问题讨论】:

    标签: javascript node.js phantomjs


    【解决方案1】:

    在提出这个问题后不久,我发现了一种更好的方法,可以使用子进程从我的节点应用程序中执行幻像程序。我将幻影脚本放在包含我的节点应用程序的文件夹中,然后像这样使用 exec:

    var exec = require('child_process').exec;
    var _phantom = exec('phantomjs runTests.js',function(error,stdout,stderr){
        console.log(stdout);
    };
    
    _phantom.on('exit',function(code,sig){
        process.exit(code);
    });
    

    这意味着我可以启动我的代理服务器,然后执行子进程。 _phantom.on('exit') 块允许我检测进程何时退出代码。然后,使用process.exit 向节点应用发出退出信号非常简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-08
      • 2020-11-30
      • 2012-09-30
      • 2013-03-26
      • 1970-01-01
      • 2013-11-11
      • 2012-03-07
      • 2012-10-11
      相关资源
      最近更新 更多