This helper is an app bundle, like the upper one you provided.
Since our main app is an Electron app, so the helper is started by node child_process.spawn() with command set to MyApp.app/Contents/MacOS/MyHelper.app/Contents/MacOS/MyHelper.
I see from source code that Node spawn() calls libuv's uv_spawn(), which calls posix_spawn() when nothing went wrong through its call path. Otherwise, it fork()s and exec*()s though.
Topic:
App & System Services
SubTopic:
Processes & Concurrency
Tags: