He escrito el siguiente código para asegurarme de que mi grupo pg-db se cierre en caso de que se cierre el proceso.
['exit', 'SIGINT', 'SIGUSR1', 'SIGUSR2', 'uncaughtException', 'SIGTERM'].forEach(ev => { process.on(ev, cleanUp.bind(null, ev)); }); donde cleanUp se define de la siguiente manera:
let didEnd = false function cleanUp(options, exCode) { try { if (!didEnd) { didEnd = true console.log('closing pool') pool.end(() => {})) } } catch(ex) { process.exit(1) } Me di cuenta de que cuando se ejecuta este código, se registra la cadena del closing pool y el proceso parece bloquearse y no terminar correctamente cuando se ejecuta este código. ¿No debería continuar ejecutándose la señal de exit una vez que se ejecuta el método de cleanUp , finalizando el proceso?