Как запустить приложение Electron независимо от терминала?

Я ищу способ запустить приложение Electron (npm startcommand) независимо от самого терминала. Это означает, что я ожидаю, что приложение Electron продолжит работать, даже если терминал закроется.

Я не уверен, возможно ли это.

Я пробовал cd electron-directory-path && nohup npm start &, но это позволяет мне использовать экземпляр терминала для других команд и предотвращает появление электронных сообщений в терминале. Но закрытие терминала по-прежнему убивает приложение Electron.

Даже cd electron-directory-path && npm start & делает то же самое, но я пока не смог найти способ запустить приложение Electron полностью независимо от экземпляра терминала...


person Martin Medro    schedule 30.08.2020    source источник


Ответы (2)


Вы запускаете приложение Electron через nohup npm start &, но при закрытии окна терминала приложение Electron также завершает работу (вопреки ожиданиям).

Я могу воспроизвести поведение, но не всегда. Примерно в 30% моих экспериментов приложение Electron не закрывалось. Мне пока не удалось найти причину такого разного поведения.

Обходной путь

Следующий обходной путь закрывает терминал без завершения работы приложения Electron. В моих тестах это работало каждый раз:

  • Запустите приложение Electron, как и раньше: nohup npm start &

  • Закройте работающий терминал, введя nohup kill $$ &

    $$ дает текущий идентификатор процесса. Обратите внимание, что kill $$ не работает.


Если вам не обязательно запускать приложение из терминала, вы также можете создать файл рабочего стола для запуска приложения.

person snwflk    schedule 30.08.2020
comment
В моем случае он завершается каждый раз, когда терминал закрывается. Более того, не только Electron, любое приложение, работающее подобным образом, закрывается при закрытии терминала. Спасибо за ответ, получилось!! - person Martin Medro; 31.08.2020

Пусть pathname будет путем к местоположению приложения узла. Просто используйте команду:

cd pathname && npm start && ^Z &


  • cd, чтобы изменить каталог, в котором нам нужно выполнить команду терминала.
  • && означает, что после этой нужно выполнить другие команды.
  • npm start для запуска приложения npm
  • ^Z, чтобы приостановить процесс, работающий в терминале, и, следовательно, отключить терминальную часть узла от исходного приложения.
  • & означает, что мы не хотим, чтобы терминал ждал выполнения команды.

Теперь мы можем закрыть терминал, и электронное приложение должно продолжать работать...!


Кредиты:

person Martin Medro    schedule 28.09.2020