簡體   English   中英

NodeJS如何檢查子進程是否創建成功

[英]How to check if child process is created successfully in NodeJS

我正在嘗試使用如下所示的 Node JS child_process 打開文件

var child_process =require('child_process');
var spawn = child_process.spawn;
var exePath='<exe's path>'
var filePath='<file path>'
var childProcess = spawn(exePath, [filePath]); 
childProcess.stdout.on('data', (res) => {
            console.log('in spawn data');
            console.log(res);
})
childProcess.stderr.on('data', (err) => {
            throw err;
});

這里的問題是我的文件在指定的 exe 中正確打開..但從未調用回調...我猜是因為打開文件后 exe 不返回任何輸出它只是打開文件。

此外,如果文件名中有任何錯誤,錯誤回調也不會觸發

  1. 我怎么知道進程創建成功。
  2. 有沒有我可以掛鈎的事件來了解這個子進程的成功創建。
  3. 為什么在發生錯誤時不觸發錯誤回調。

正如@JuanPicado 在評論中所說,要檢查子進程是否已正確生成,您可以檢查其 PID。 這是一個例子:

import child_process from 'child_process';
const subprocess = child_process.spawn("grep");
if(typeof subprocess.pid !== "number")
    throw new ErrorError: Failed to spawn subprocess.");
console.log("Spawned subprocess correctly!");

根據我的觀察,如果子進程未正確生成,則subprocess.pid將是undefined的。 通過更改進程名稱以包含要查看的拼寫錯誤來測試它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM