Gracefully exit on SIGTERM/SIGKILL/SIGQUIT
This commit is contained in:
		
							parent
							
								
									96c28027ef
								
							
						
					
					
						commit
						6afd222515
					
				|  | @ -13,6 +13,7 @@ | ||||||
|         "@hapi/inert": "^6.0.4", |         "@hapi/inert": "^6.0.4", | ||||||
|         "@hapi/vision": "^6.1.0", |         "@hapi/vision": "^6.1.0", | ||||||
|         "cheerio": "^1.0.0-rc.10", |         "cheerio": "^1.0.0-rc.10", | ||||||
|  |         "exiting": "^6.0.1", | ||||||
|         "got": "^11.8.2", |         "got": "^11.8.2", | ||||||
|         "hpagent": "^0.1.2", |         "hpagent": "^0.1.2", | ||||||
|         "pug": "^3.0.2" |         "pug": "^3.0.2" | ||||||
|  | @ -1224,6 +1225,21 @@ | ||||||
|         "node": ">=0.8.0" |         "node": ">=0.8.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/exiting": { | ||||||
|  |       "version": "6.0.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/exiting/-/exiting-6.0.1.tgz", | ||||||
|  |       "integrity": "sha512-0kUQkyWTMJUZ2wKkxjducVojsL5vtDxw26q9sd07SwyWZswbHOrWN9Bs2jk9uXffatsGp2QP5tmQUYXiPi1Z2A==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "@hapi/bounce": "^2.0.0", | ||||||
|  |         "@hapi/hoek": "^9.0.2" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=12.13.0" | ||||||
|  |       }, | ||||||
|  |       "peerDependencies": { | ||||||
|  |         "@hapi/hapi": ">=17.9.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/fill-range": { |     "node_modules/fill-range": { | ||||||
|       "version": "7.0.1", |       "version": "7.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", | ||||||
|  | @ -4359,6 +4375,15 @@ | ||||||
|       "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", |       "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "exiting": { | ||||||
|  |       "version": "6.0.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/exiting/-/exiting-6.0.1.tgz", | ||||||
|  |       "integrity": "sha512-0kUQkyWTMJUZ2wKkxjducVojsL5vtDxw26q9sd07SwyWZswbHOrWN9Bs2jk9uXffatsGp2QP5tmQUYXiPi1Z2A==", | ||||||
|  |       "requires": { | ||||||
|  |         "@hapi/bounce": "^2.0.0", | ||||||
|  |         "@hapi/hoek": "^9.0.2" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "fill-range": { |     "fill-range": { | ||||||
|       "version": "7.0.1", |       "version": "7.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", | ||||||
|  |  | ||||||
|  | @ -30,6 +30,7 @@ | ||||||
|     "@hapi/inert": "^6.0.4", |     "@hapi/inert": "^6.0.4", | ||||||
|     "@hapi/vision": "^6.1.0", |     "@hapi/vision": "^6.1.0", | ||||||
|     "cheerio": "^1.0.0-rc.10", |     "cheerio": "^1.0.0-rc.10", | ||||||
|  |     "exiting": "^6.0.1", | ||||||
|     "got": "^11.8.2", |     "got": "^11.8.2", | ||||||
|     "hpagent": "^0.1.2", |     "hpagent": "^0.1.2", | ||||||
|     "pug": "^3.0.2" |     "pug": "^3.0.2" | ||||||
|  |  | ||||||
							
								
								
									
										29
									
								
								src/index.ts
								
								
								
								
							
							
						
						
									
										29
									
								
								src/index.ts
								
								
								
								
							|  | @ -1,22 +1,29 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import Hapi = require('@hapi/hapi'); | import Hapi = require('@hapi/hapi'); | ||||||
|  | const Exiting = require('exiting'); | ||||||
| import Path  = require('path'); | import Path  = require('path'); | ||||||
| import { handleAlbum, handleGallery, handleMedia, handleTag, handleUser } from './handlers'; | import { handleAlbum, handleGallery, handleMedia, handleTag, handleUser } from './handlers'; | ||||||
| 
 | 
 | ||||||
| import CONFIG from './config'; | import CONFIG from './config'; | ||||||
| 
 | 
 | ||||||
| const init = async () => { | const server = Hapi.server({ | ||||||
|   const server = Hapi.server({ |   port: CONFIG.port, | ||||||
|     port: CONFIG.port, |   host: CONFIG.host, | ||||||
|     host: CONFIG.host, |   address: CONFIG.address, | ||||||
|     address: CONFIG.address, |   routes: { | ||||||
|     routes: { |     files: { | ||||||
|       files: { |       relativeTo: Path.join(__dirname, 'static') | ||||||
|         relativeTo: Path.join(__dirname, 'static') |  | ||||||
|       } |  | ||||||
|     } |     } | ||||||
|   }); |   } | ||||||
|  | }); | ||||||
|  | server.events.on('stop', () => { | ||||||
|  |   console.log('Server stopped.'); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | const manager = Exiting.createManager(server); | ||||||
|  | 
 | ||||||
|  | const init = async () => { | ||||||
|   await server.register(require('@hapi/vision')); |   await server.register(require('@hapi/vision')); | ||||||
|   await server.register(require('@hapi/inert')); |   await server.register(require('@hapi/inert')); | ||||||
| 
 | 
 | ||||||
|  | @ -62,7 +69,7 @@ const init = async () => { | ||||||
|     handler: handleGallery, |     handler: handleGallery, | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   await server.start(); |   await manager.start(); | ||||||
|   console.log('Server running on %s', server.info.uri); |   console.log('Server running on %s', server.info.uri); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue