Handle SIGTERM (#782)
* Handle SIGTERM Resolve #781 * Add `Caught signal ...` messages Container log when sending a `SIGHUP` signal and then a `SIGTERM` signal using `docker kill --signal ...` : ``` Starting tileserver-gl v4.4.8 [INFO] Automatically creating config file for zurich_switzerland.mbtiles [INFO] Only a basic preview style will be used. [INFO] See documentation to learn how to create config.json file. Run with --verbose to see the config file here. Starting server Listening at http://[::]:8080/ Startup complete Caught signal SIGHUP, refreshing Stopping server and reloading config Starting server Listening at http://[::]:8080/ Startup complete Caught signal SIGTERM, stopping gracefully ``` Note that the numeric signal values, as used in the shell version, were replaced by signal names, as used in nodeJS. * run 'npm run lint:js:fix' --------- Co-authored-by: acalcutt <acalcutt@techidiots.net>
This commit is contained in:
parent
b4d06196da
commit
64adff0855
2 changed files with 17 additions and 5 deletions
|
@ -590,6 +590,16 @@ function start(opts) {
|
|||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop the server gracefully
|
||||
*
|
||||
* @param {string} signal Name of the received signal
|
||||
*/
|
||||
function stopGracefully(signal) {
|
||||
console.log(`Caught signal ${signal}, stopping gracefully`);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param opts
|
||||
|
@ -602,11 +612,11 @@ export function server(opts) {
|
|||
process.exit(1);
|
||||
});
|
||||
|
||||
process.on('SIGINT', () => {
|
||||
process.exit();
|
||||
});
|
||||
process.on('SIGINT', stopGracefully);
|
||||
process.on('SIGTERM', stopGracefully);
|
||||
|
||||
process.on('SIGHUP', () => {
|
||||
process.on('SIGHUP', (signal) => {
|
||||
console.log(`Caught signal ${signal}, refreshing`);
|
||||
console.log('Stopping server and reloading config');
|
||||
|
||||
running.server.shutdown(() => {
|
||||
|
|
|
@ -8,9 +8,11 @@ import glyphCompose from '@mapbox/glyph-pbf-composite';
|
|||
|
||||
/**
|
||||
* Generate new URL object
|
||||
*
|
||||
* @param req
|
||||
* @params {object} req - Express request
|
||||
* @returns {URL} object
|
||||
**/
|
||||
*/
|
||||
const getUrlObject = (req) => {
|
||||
const urlObject = new URL(`${req.protocol}://${req.headers.host}/`);
|
||||
// support overriding hostname by sending X-Forwarded-Host http header
|
||||
|
|
Loading…
Reference in a new issue