utilityProcess
进程:主进程
modulePath
string - 作为子进程执行入口的脚本文件路径。args
string[] (可选) - 字符串参数列表,在子进程中可以使用process.argv
。options
Object (可选)env
Object (可选) - 环境变量 key-value 键值对。 默认值为process.env
.execArgv
string[] (可选) - 传递给执行文件的字符串参数列表。cwd
string (可选) - 子进程的工作目录。stdio
(string[] | string) (可能) - 允许配置子进程的stdout
和stderr
的模式。 默认值为inherit
. 字符串的值可以是pipe
,ignore
,inherit
期中的一个,更多详细信息,可以参考 Node.js 的 文档。 当前此选项仅支持 和stderr
配置为pipe
,inherit
或ignore
。 不支持配置stdin
。stdin
将被忽略。 例如,支持的值将被处理如下:pipe
:相当于 [‘ignore’, ‘pipe’, ‘pipe’] (默认)ignore
:相当于 [‘ignore’, ‘ignore’, ‘ignore’]
serviceName
string (可选) - 将显示在 app 的 child-process-gone 事件中name
属性的进程名称。 默认值为node.mojom.NodeService
.allowLoadingUnsignedLibraries
boolean (可选) macOS - 使用这个标记,在 macOS 中执行 utility process 将通过Electron Helper (Plugin).app
助手,它可以被com.apple.security.cs.disable-library-validation
和com.apple.security.cs.allow-unsigned-executable-memory
权限签名。 将允许 utility process 加载未签名的库。 除非您特别需要这种能力,否则最好保留这个禁用。 默认值为false
.
返回
Class: UtilityProcess
UtilityProcess
是一个 。
child.postMessage(message, [transfer])
message
anytransfer
MessagePortMain[] (可选)
例如:
返回 boolean
优雅的终于进程。 在 POSIX,使用 SIGTERM,为确保进程在退出时可以收到。 如果终止成功,这个方法返回 true,否则则返回 false。
child.pid
一个 Integer | undefined
代表子进程的进程 ID (PID) 。 如果由于子进程失败引发错误,则值为 undefined
。 当子进程退出,在 exit
事件处罚之后,值为 undefined
。
child.stdout
// Main process
const { port1, port2 } = new MessageChannelMain()
const child = utilityProcess.fork(path.join(__dirname, 'test.js'))
child.stdout.on('data', (data) => {
console.log(`Received chunk ${data}`)
})
child.stderr
A NodeJS.ReadableStream | null
代表子进程的 stderr 。 如果子进程是通过 options.stdio[2] 选项生成的,它设置为除了 ‘pipe’ 以为的值,那么将为 null
。 当子进程退出,在 exit
事件处罚之后,值为 null
。
Event: ‘spawn’
子进程成功生成后触发一次。
Event: ‘exit’
返回:
- number - 包含进程的退出代码,posix 来自 waitpid,windows 来自 GetExitCodeProcess 。
进程结束之后触发。
Event: ‘message’
当子进程使用 发送一条消息时触发。