| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 9a9aa88 commit 8d90db5
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -350,6 +350,9 @@ Signal events will be emitted when the Node.js process receives a signal. Please | |||
| 350 | 350 | refer to signal(7) for a listing of standard POSIX signal names such as | |
| 351 | 351 | `SIGINT`, `SIGHUP`, etc. | |
| 352 | 352 | ||
| 353 | + The signal handler will receive the signal's name (`'SIGINT'`, | ||
| 354 | + `'SIGTERM'`, etc.) as the first argument. | ||
| 355 | + | ||
| 353 | 356 | The name of each event will be the uppercase common name for the signal (e.g. | |
| 354 | 357 | `'SIGINT'` for `SIGINT` signals). | |
| 355 | 358 | ||
@@ -362,6 +365,14 @@ process.stdin.resume(); | |||
| 362 | 365 | process.on('SIGINT', () => { | |
| 363 | 366 | console.log('Received SIGINT. Press Control-D to exit.'); | |
| 364 | 367 | }); | |
| 368 | + | ||
| 369 | + // Using a single function to handle multiple signals | ||
| 370 | + function handle(signal) { | ||
| 371 | + console.log(`Received ${signal}`); | ||
| 372 | + } | ||
| 373 | + | ||
| 374 | + process.on('SIGINT', handle); | ||
| 375 | + process.on('SIGTERM', handle); | ||
| 365 | 376 | ``` | |
| 366 | 377 | ||
| 367 | 378 | *Note*: An easy way to send the `SIGINT` signal is with `<Ctrl>-C` in most | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -195,7 +195,7 @@ function setupSignalHandlers() { | |||
| 195 | 195 | ||
| 196 | 196 | wrap.unref(); | |
| 197 | 197 | ||
| 198 | - wrap.onsignal = function() { process.emit(type); }; | ||
| 198 | + wrap.onsignal = function() { process.emit(type, type); }; | ||
| 199 | 199 | ||
| 200 | 200 | const signum = constants[type]; | |
| 201 | 201 | const err = wrap.start(signum); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,24 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + | ||
| 3 | + const common = require('../common'); | ||
| 4 | + const assert = require('assert'); | ||
| 5 | + | ||
| 6 | + if (common.isWindows) { | ||
| 7 | + common.skip('Sending signals with process.kill is not supported on Windows'); | ||
| 8 | + } | ||
| 9 | + | ||
| 10 | + process.once('SIGINT', common.mustCall((signal) => { | ||
| 11 | + assert.strictEqual(signal, 'SIGINT'); | ||
| 12 | + })); | ||
| 13 | + | ||
| 14 | + process.kill(process.pid, 'SIGINT'); | ||
| 15 | + | ||
| 16 | + process.once('SIGTERM', common.mustCall((signal) => { | ||
| 17 | + assert.strictEqual(signal, 'SIGTERM'); | ||
| 18 | + })); | ||
| 19 | + | ||
| 20 | + process.kill(process.pid, 'SIGTERM'); | ||
| 21 | + | ||
| 22 | + // Prevent Node.js from exiting due to empty event loop before signal handlers | ||
| 23 | + // are fired | ||
| 24 | + setImmediate(() => {}); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments