utilityProcess 
utilityProcess creates a child process with Node.js and Message ports enabled. It provides the equivalent of child_process.fork API from Node.js but instead uses Services API from Chromium to launch the child process.
Process: Main
Methods 
utilityProcess.fork(modulePath[, args][, options]) 
- modulePathstring - Path to the script that should run as entrypoint in the child process.
- argsstring[] (optional) - List of string arguments that will be available as- process.argvin the child process.
- optionsObject (optional)- envObject (optional) - Environment key-value pairs. Default is- process.env.
- execArgvstring[] (optional) - List of string arguments passed to the executable.
- cwdstring (optional) - Current working directory of the child process.
- stdio(string[] | string) (optional) - Allows configuring the mode for- stdoutand- stderrof the child process. Default is- inherit. String value can be one of- pipe,- ignore,- inherit, for more details on these values you can refer to stdio documentation from Node.js. Currently this option only supports configuring- stdoutand- stderrto either- pipe,- inheritor- ignore. Configuring- stdinto any property other than- ignoreis not supported and will result in an error. For example, the supported values will be processed as following:- pipe: equivalent to ['ignore', 'pipe', 'pipe']
- ignore: equivalent to ['ignore', 'ignore', 'ignore']
- inherit: equivalent to ['ignore', 'inherit', 'inherit'] (the default)
 
- serviceNamestring (optional) - Name of the process that will appear in- nameproperty of- ProcessMetricreturned by- app.getAppMetricsand- child-process-goneevent of- app. Default is- Node Utility Process.
- allowLoadingUnsignedLibrariesboolean (optional) macOS - With this flag, the utility process will be launched via the- Electron Helper (Plugin).apphelper executable on macOS, which can be codesigned with- com.apple.security.cs.disable-library-validationand- com.apple.security.cs.allow-unsigned-executable-memoryentitlements. This will allow the utility process to load unsigned libraries. Unless you specifically need this capability, it is best to leave this disabled. Default is- false.
- respondToAuthRequestsFromMainProcessboolean (optional) - With this flag, all HTTP 401 and 407 network requests created via the net module will allow responding to them via the- app#loginevent in the main process instead of the default- loginevent on the- ClientRequestobject.
 
Returns UtilityProcess
Class: UtilityProcess 
Instances of the
UtilityProcessrepresent the Chromium spawned child process with Node.js integration.
UtilityProcess is an EventEmitter.
Instance Methods 
child.postMessage(message, [transfer]) 
- messageany
- transferMessagePortMain[] (optional)
Send a message to the child process, optionally transferring ownership of zero or more MessagePortMain objects.
For example:
// Main process
const { port1, port2 } = new MessageChannelMain()
const child = utilityProcess.fork(path.join(__dirname, 'test.js'))
child.postMessage({ message: 'hello' }, [port1])
// Child process
process.parentPort.once('message', (e) => {
  const [port] = e.ports
  // ...
})child.kill() 
Returns boolean
Terminates the process gracefully. On POSIX, it uses SIGTERM but will ensure the process is reaped on exit. This function returns true if the kill is successful, and false otherwise.
Instance Properties 
child.pid 
A Integer | undefined representing the process identifier (PID) of the child process. If the child process fails to spawn due to errors, then the value is undefined. When the child process exits, then the value is undefined after the exit event is emitted.
child.stdout 
A NodeJS.ReadableStream | null that represents the child process's stdout. If the child was spawned with options.stdio[1] set to anything other than 'pipe', then this will be null. When the child process exits, then the value is null after the exit event is emitted.
// 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 that represents the child process's stderr. If the child was spawned with options.stdio[2] set to anything other than 'pipe', then this will be null. When the child process exits, then the value is null after the exit event is emitted.
Instance Events 
Event: 'spawn' 
Emitted once the child process has spawned successfully.
Event: 'exit' 
Returns:
- codenumber - Contains the exit code for the process obtained from waitpid on posix, or GetExitCodeProcess on windows.
Emitted after the child process ends.
Event: 'message' 
Returns:
- messageany
Emitted when the child process sends a message using process.parentPort.postMessage().