Node.JS Shutdown Hook - PullRequest
       42

Node.JS Shutdown Hook

3 голосов
/ 22 марта 2011

Можно ли перехватить сигнал по умолчанию kill и использовать его в качестве команды для плавного выключения? Это для Соляриса SMF. Я обнаружил, что самый простой способ остановить службу - установить :kill в качестве сценария завершения работы, а затем добавить обработчик завершения работы в Java. В этом случае я хочу сделать это для Node.JS. Как мне это сделать?

Редактировать: цель

  1. Прекратить получать новые запросы.
  2. Дайте существующим обратным вызовам несколько секунд, чтобы закончить.
  3. Запишите некоторую информацию в stderr.

@ Первым предложением иностранца было использование process.on('exit'..., но, похоже, я не смогу достичь номера 2 с помощью этого метода.

Ответы [ 2 ]

9 голосов
/ 22 марта 2011

Событие exit: http://nodejs.org/docs/v0.3.1/api/process.html#event_exit_

process.on('exit', function() {
  console.log('About to exit.');
});

Редактировать: Альтернативой, которая может работать на вас, вместо того, чтобы убивать процесс, посылая сигнал какSIGUSR1 (kill -s SIGUSR1), а затем прослушивает этот сигнал (см. Ссылку, опубликованную @masylum в другом ответе), и после того, как вы закончите или по истечении некоторого времени явно прекратите с помощью process.exit ().

3 голосов
/ 23 марта 2011

Единственное, что приходит мне в голову, - это использование сигнальных событий.

http://nodejs.org/docs/v0.3.1/api/process.html#signal_Events

...