【发布时间】:2014-08-07 04:09:05
【问题描述】:
当我试图生成一个批处理文件时,我没有得到正确的 PID child process。
当我试图杀死子进程的PID 时,正在运行的进程并没有停止,而是停止了另一个cmd
我不知道这是怎么回事。
在我的批处理文件中打开另一个cmd 并将目录更改为C:\AppiumForWindows-1.0.0\Appium\node_modules\appium\bin 并运行node 进程node appium
。我想在单独的 cmd 中执行 node 进程(在生成 batch 文件时,它将使用相同的脚本执行。我不需要。)这就是我使用单独的 cmd。
由于这个原因,我没有得到正确的PID 进程吗?我不知道...
var startappium = function (dev, callback) {
var ports = {};
var execCmd = __dirname+"//Start.bat";
var args = ['1000'];
var start = spawn(execCmd, args);
console.log("pid id----------------------",start.pid)
var pid =start.pid
start.stdout.on('data', function (d) {
setTimeout(function() {
start .kill() // it does not kill the process
},5000);
console.log(d.toString())
return callback(null, ports);
});
start.stderr.on('data', function (ta) {
return callback(null, ta);
});
start.on('close', function (code) {
console.log("close: ",code)
});
}
startappium()
Start.bat文件
@echo off
start cmd /k " call "C:\Program Files\nodejs\nodevars.bat" & pushd C:\AppiumForWindows-1.0.0\Appium\node_modules\appium\bin && node appium -p %1 --chromedriver-port %2"
pause
在运行tasklist 时,它显示带有多个PID 的cms,我试图一个一个地杀死并在一个PID 中杀死正在运行的batch 文件进程。
PID 从子进程 id 获取不会杀死正在运行的批处理进程。
请为此提出解决方案。
【问题讨论】:
标签: javascript node.js spawn