从nodejs运行tomcat

我正在尝试在nodejs中使用subprocess在本地机器上启动一个tomcat服务器。 这是我的实验,将帮助我了解subprocess的工作方式,并将帮助我正在进行的一个项目。 我一直在看这里的文档: http : //nodejs.org/api/child_process.html但我有一个问题,实际上这样做。

我想要做的是在本地运行nodejs,一旦我点击某处(或者甚至启动页面),页面应该运行一个tomcat服务器,确保它已经启动,然后加载localhost:8080欢迎页面。 一旦我在这里closures页面,nodejs API被调用,它应该closurestomcat(这个部分现在不是必需的,但只是实验的一部分)。 谢谢!

看看这个npm模块Shelljs

ShellJS – 用于Node.js构build状态的Unix shell命令

ShellJS是一个在Node.js API之上的Unix shell命令的可移植(Windows / Linux / OS X)实现。 您可以使用它来消除您的shell脚本依赖于Unix,同时仍然保持其熟悉和强大的命令。 您也可以在全局安装它,以便您可以从Node项目之外运行它 – 向那些粗糙的Bash脚本说再见!

ShellJS已经在许多相关的项目中进行了testing

由于它能够调用脚本,因此您可以控制Tomcat的脚本启动和closures,并继续与您的实验:)

ShellJS可以select:

exec(command [,options] [,callback])

可用选项(默认情况下全部为false):

async: Asynchronous execution. Defaults to true if a callback is provided. silent: Do not echo program output to console. 

例子:

var version = exec('node –version',{silent:true})。output;

var child = exec('some_long_running_process',{async:true}); child.stdout.on('data',function(data){/ * …做一些数据… * /});

exec('some_long_running_process',函数(代码,输出){
console.log('退出代码:',代码); console.log('程序输出:',输出); });

除非另有说明,否则同步执行给定的命令。 在同步模式下,返回包含程序输出(stdout + stderr)和退出代码的对象{code:…,output:…}。 否则返回subprocess对象,callback获取参数(代码,输出)。

注意:对于长寿命的进程,最好是asynchronous运行exec(),因为当前的同步实现使用了大量的CPU。 这应该很快就会得到解决。