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
|
* @param opts
|
||||||
|
@ -602,11 +612,11 @@ export function server(opts) {
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('SIGINT', () => {
|
process.on('SIGINT', stopGracefully);
|
||||||
process.exit();
|
process.on('SIGTERM', stopGracefully);
|
||||||
});
|
|
||||||
|
|
||||||
process.on('SIGHUP', () => {
|
process.on('SIGHUP', (signal) => {
|
||||||
|
console.log(`Caught signal ${signal}, refreshing`);
|
||||||
console.log('Stopping server and reloading config');
|
console.log('Stopping server and reloading config');
|
||||||
|
|
||||||
running.server.shutdown(() => {
|
running.server.shutdown(() => {
|
||||||
|
|
|
@ -8,9 +8,11 @@ import glyphCompose from '@mapbox/glyph-pbf-composite';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate new URL object
|
* Generate new URL object
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
* @params {object} req - Express request
|
* @params {object} req - Express request
|
||||||
* @returns {URL} object
|
* @returns {URL} object
|
||||||
**/
|
*/
|
||||||
const getUrlObject = (req) => {
|
const getUrlObject = (req) => {
|
||||||
const urlObject = new URL(`${req.protocol}://${req.headers.host}/`);
|
const urlObject = new URL(`${req.protocol}://${req.headers.host}/`);
|
||||||
// support overriding hostname by sending X-Forwarded-Host http header
|
// support overriding hostname by sending X-Forwarded-Host http header
|
||||||
|
|
Loading…
Reference in a new issue