проверить, является ли приложение закрытым в электронном js? - PullRequest
2 голосов
/ 18 января 2020

У меня вопрос Как узнать, закрыто ли мое приложение из диспетчера задач в windows или из системного монитора в Ubuntu (Linux)?

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

1 Ответ

0 голосов
/ 18 января 2020

В документации nodejs о сигнальных событиях невозможно иметь прослушиватель для SIGKILL, однако вы можете добавить его для SIGTERM. Вот другие сигнальные события:

'SIGUSR1' зарезервировано Node.js для запуска отладчика. Можно установить прослушиватель, но это может помешать отладчику.

'SIGTERM' и 'SIGINT' имеют обработчики по умолчанию на не-1032 * платформах, которые сбрасывают режим терминала перед выходом с кодом 128 + сигнал число. Если для одного из этих сигналов установлен прослушиватель, его поведение по умолчанию будет удалено (Node.js больше не будет выходить).

'SIGPIPE' по умолчанию игнорируется. На нем может быть установлен прослушиватель.

'SIGHUP' генерируется на Windows, когда окно консоли закрывается, и на других платформах при различных аналогичных условиях. Смотрите сигнал (7). На нем может быть установлен прослушиватель, однако Node.js будет безоговорочно прерван на Windows через 10 секунд. На не Windows платформах стандартное поведение SIGHUP должно завершаться Node.js, но после установки прослушивателя его стандартное поведение будет удалено.

'SIGTERM' не поддерживается на Windows , его можно прослушивать.

'SIGINT' с терминала поддерживается на всех платформах и обычно может генерироваться с помощью + C (хотя это может быть настраиваемо). Он не генерируется, когда включен режим терминала raw.

'SIGBREAK' доставляется на Windows при нажатии +, на не-1042 * платформах его можно прослушивать, но нет способа отправьте или сгенерируйте его.

'SIGWINCH' доставляется после изменения размера консоли. На Windows это будет происходить только при записи на консоль, когда курсор перемещается или когда читаемый tty используется в необработанном режиме.

'SIGKILL' не может иметь установленного слушателя, это будет безусловно завершить Node.js на всех платформах.

«SIGSTOP» не может иметь прослушиватель, установленный.

«SIGBUS», «SIGFPE», «SIGSEGV» и «SIGILL», когда искусственно не вызван с использованием kill (2) по своей сути оставляет процесс в состоянии, из которого небезопасно пытаться вызвать JS слушателей. Это может привести к зависанию процесса в бесконечном l oop, поскольку слушатели, подключенные с использованием process.on (), вызываются асинхронно и поэтому не могут исправить основную проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...