const http = require('http');
const server = http.createServer((req, res) => {
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log('Server running on port 3000');
});
let connections = [];
server.on('connection', (socket) => {
connections.push(socket);
socket.on('close', () => {
connections = connections.filter(c => c!== socket);
});
});
process.on('SIGTERM', () => {
console.log('Received SIGTERM. Closing server...');
server.close(() => {
console.log('Server closed. Waiting for connections to finish...');
if (connections.length === 0) {
console.log('All connections closed. Exiting.');
process.exit(0);
} else {
const closeConnections = () => {
if (connections.length === 0) {
console.log('All connections closed. Exiting.');
process.exit(0);
} else {
connections[0].end();
connections.shift();
setTimeout(closeConnections, 100);
}
};
closeConnections();
}
});
});