当我尝试生成批处理文件时,我得不到PID
的正确child proces
。
当我试图杀死子进程的PID
时,正在运行的进程没有停止,它会停止另一个cmd
我不知道它是怎么发生的。
在我的批处理文件中,我正在打开另一个cmd
并将目标更改为C:\AppiumForWindows-1.0.0\Appium\node_modules\appium\bin
并运行node
进程node appium
。我希望单独node
执行cmd
进程(在生成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,我试图逐个杀死并在一个{{1}中杀死正在运行的batch
文件进程}。
PID
从子进程id获取并不会终止正在运行的批处理进程。
请为此提出解决方案。