Commit 8d90db5 1 parent 9a9aa88 commit 8d90db5 Copy full SHA for 8d90db5
File tree 3 files changed +36
-1
lines changed
3 files changed +36
-1
lines 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
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 ( ( ) => { } ) ;
You can’t perform that action at this time.
0 commit comments