1

Я знаю, что есть отображение ключей для отмены сборки. Но я хочу автоматически, когда я нажимаю Ctrl+B, чтобы он прервал предыдущую сборку.

  1. Является ли это возможным?

  2. Возможно ли, что сборка "отмена" сделает некоторые работы. И не просто завершить программу (например, отправить сигнал уничтожения и дать программе NodeJS время закрыть все сокеты ...)

Например:

http.createServer().listen(80)

Это работает в первый раз, когда я нажимаю Ctrl+B. но во второй раз я всегда получаю не могу привязаться к порту 80 ...

1 ответ1

2
  • Заставьте ваше приложение написать файл pid.

    Либо в сценарии сборки, где создается служба, напишите свой собственный pid. Или самим сервисом, такие вещи, как Apache и NGinx, должны где-то писать свои. Если это ваше приложение, вы можете написать свой собственный pid-файл. Насколько мне известно , обычными каталогами являются /var/run для системных процессов, запуск веб-сервиса может подходить или ~/.appname , это скрытый файл, названный в честь вашего приложения в вашем домашнем каталоге.

    В среде WindowsNT получение вашего pid может быть сложным , а уничтожение процесса с помощью pid также может быть сложным.

  • Во время сборки, прежде чем создавать приложение, убейте предыдущий процесс (ы) сборки по идентификатору, указанному в pidfile.

Код прототипа:

Подробно и прокомментировано: https://gist.github.com/thorsummoner/f1fc7acf94cf9696ef75

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .