[Electron] Electronで外部アプリをキックするときに子プロセスではなく、別プロセスとしてキックしたい
やりたいこと
Electronで作っているアプリで、自動アップデート機能を実装することになったので、アプリから普通にインストーラを起動したら、 イントール時にアプリが閉じてしまうみたいで、親プロセスが死んだ。親プロセスが死ねば必然、子プロセスで起動しているインストール処理も南無阿弥陀仏である。インストール処理は途中で中断されてしまう。 なのでインストーラを子プロセスとしてではなく、別プロセスとしてキックしたい。
調査
ググる
electronでアップデータを配布する簡単な方法 この記事のクライアントのコードにバチっといい感じのコードがあった。
解決策
const { spawn } = require('child_process'); // 外部アプリキック const child = spawn(path, [], { stdio: 'ignore', // 親プロセスが終了しても子プロセスが継続するようにする detached: true, }); // 親プロセスが子プロセスから独立して終了できるようにする child.unref()