从shell脚本中杀死Node.js程序

Killing a Node.js program from a shell script

本文关键字:Node js 程序 shell 脚本      更新时间:2023-09-26

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

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

有什么办法我能做到这一点吗?

问了这个问题后,我发现了一种更好的方法,可以通过使用子进程从我的节点应用程序中执行幻影程序。我把我的幻影脚本放在包含我的节点应用程序的文件夹中,然后使用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向节点应用程序发出退出信号非常简单。