You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					40 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					40 lines
				
				1.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# signal-exit
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](https://travis-ci.org/tapjs/signal-exit)
							 | 
						||
| 
								 | 
							
								[](https://coveralls.io/r/tapjs/signal-exit?branch=master)
							 | 
						||
| 
								 | 
							
								[](https://www.npmjs.com/package/signal-exit)
							 | 
						||
| 
								 | 
							
								[](https://github.com/conventional-changelog/standard-version)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								When you want to fire an event no matter how a process exits:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* reaching the end of execution.
							 | 
						||
| 
								 | 
							
								* explicitly having `process.exit(code)` called.
							 | 
						||
| 
								 | 
							
								* having `process.kill(pid, sig)` called.
							 | 
						||
| 
								 | 
							
								* receiving a fatal signal from outside the process
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Use `signal-exit`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								var onExit = require('signal-exit')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								onExit(function (code, signal) {
							 | 
						||
| 
								 | 
							
								  console.log('process exited!')
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## API
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`var remove = onExit(function (code, signal) {}, options)`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The return value of the function is a function that will remove the
							 | 
						||
| 
								 | 
							
								handler.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Note that the function *only* fires for signals if the signal would
							 | 
						||
| 
								 | 
							
								cause the process to exit.  That is, there are no other listeners, and
							 | 
						||
| 
								 | 
							
								it is a fatal signal.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Options
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* `alwaysLast`: Run this handler after any other signal or exit
							 | 
						||
| 
								 | 
							
								  handlers.  This causes `process.emit` to be monkeypatched.
							 |