I want my node.js app close on git bash terminal window close ( without pressing ctrl+c ) I tried SIGTERM SIGINT SIGHUP SIGWHATEVER, it doesn't work, the app won't exit, I get 'the port blabla is already in use, when trying to run it again'
here's the code
const server = app.listen(8000, () => {
console.log(`Server is running on port 8000`);
});
process.on('SIGQUIT', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGQUIT');
process.exit();
});
process.on('SIGTERM', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGTERM');
process.exit();
});
process.on('SIGINT', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGINT');
process.exit();
});
process.on('SIGBREAK', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGBREAK');
process.exit();
});
process.on('SIGHUP', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGHUP');
process.exit();
});
process.on('SIGUSR1', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGUSR1');
process.exit();
});
process.on('SIGUSR2', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGUSR2');
process.exit();
});
process.on('SIGTTOU', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGTTOU');
process.exit();
});
process.on('SIGTTIN', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGTTIN');
process.exit();
});
process.on('SIGTSTP', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGTSTP');
process.exit();
});
process.on('SIGCHLD', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGCHLD');
process.exit();
});
process.on('SIGTTOU', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGTTOU');
process.exit();
});
process.on('SIGTRAP', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGTRAP');
process.exit();
});
process.on('SIGABRT', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGABRT');
process.exit();
});
process.on('SIGFPE', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGFPE');
process.exit();
});
process.on('SIGBUS', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGBUS');
process.exit();
});
process.on('SIGSEGV', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGSEGV');
process.exit();
});
process.on('SIGPIPE', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGPIPE');
process.exit();
});
process.on('SIGSYS', () => {
wss.close();
server.close();
writeFileSync('./1.txt', 'SIGSYS');
process.exit();
});
I start the server with this script in my package.json "ts-node ./src/server/server.ts" and when it did start I just close the terminal, and nothing happens, when I reopen the terminal and start the server again I get
Error: listen EADDRINUSE: address already in use :::8080 at Server.setupListenHandle [as _listen2] (node:net:1893:16) at listenInCluster (node:net:1941:12) at Server.listen (node:net:2029:7) at new WebSocketServer (D:\coding\media-buyer-ui\node_modules\ws\lib\websocket-server.js:102:20) at Object. (D:\coding\media-buyer-ui\src\server\server.ts:32:13) at Module._compile (node:internal/modules/cjs/loader:1378:14) at Module.m._compile (D:\coding\media-buyer-ui\node_modules\ts-node\src\index.ts:1618:23) at Module._extensions..js (node:internal/modules/cjs/loader:1437:10) at Object.require.extensions. [as .ts] (D:\coding\media-buyer-ui\node_modules\ts-node\src\index.ts:1621:12) at Module.load (node:internal/modules/cjs/loader:1212:32) { code: 'EADDRINUSE', errno: -4091, syscall: 'listen', address: '::', port: 8080