Я разрабатываю настольное приложение с помощью Electron. Я выполняю определенные задачи в отдельном процессе, чтобы не блокировать процессы рендеринга. Я добиваюсь этого, позвонив require('child_process').fork
. Это работает должным образом на всех платформах (Linux, Windows, OSX). Однако, когда я упаковываю приложение с помощью electron-builder
, устанавливаю сгенерированный установщик NSIS и выполняю установленный двоичный файл, вилка не работает. Я запустил этот двоичный файл из командной строки, чтобы увидеть какие-либо сообщения об ошибках, но это не помогло. Когда это происходит, родительский процесс, который разветвляет дочерний процесс, получает exit
обратный вызов с кодом выхода 1. Это проблема только с исполняемым файлом, установленным установщиком NSIS. Если я запустил electron-builder
с параметрами --dir
и запустил исполняемый файл из распакованного каталога, он будет работать нормально.
Это заставило меня поверить, что это связано с разрешениями, установленными для исполняемого файла установщиком. Я поигрался с разрешениями, но безуспешно. Я не уверен, какие разрешения отвечают за разрешение / предотвращение такого поведения.