mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-11-03 19:07:00 -05:00 
			
		
		
		
	Merge pull request #2445 from mikiher/sigint-handler
Add a SIGINT handler for proper server shutdown
This commit is contained in:
		
						commit
						bdb5dc8c28
					
				@ -276,6 +276,19 @@ class Server {
 | 
				
			|||||||
    })
 | 
					    })
 | 
				
			||||||
    app.get('/healthcheck', (req, res) => res.sendStatus(200))
 | 
					    app.get('/healthcheck', (req, res) => res.sendStatus(200))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let sigintAlreadyReceived = false
 | 
				
			||||||
 | 
					    process.on('SIGINT', async () => {
 | 
				
			||||||
 | 
					      if (!sigintAlreadyReceived) {
 | 
				
			||||||
 | 
					        sigintAlreadyReceived = true
 | 
				
			||||||
 | 
					        Logger.info('SIGINT (Ctrl+C) received. Shutting down...')
 | 
				
			||||||
 | 
					        await this.stop()
 | 
				
			||||||
 | 
					        Logger.info('Server stopped. Exiting.')
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        Logger.info('SIGINT (Ctrl+C) received again. Exiting immediately.')        
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      process.exit(0)
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.server.listen(this.Port, this.Host, () => {
 | 
					    this.server.listen(this.Port, this.Host, () => {
 | 
				
			||||||
      if (this.Host) Logger.info(`Listening on http://${this.Host}:${this.Port}`)
 | 
					      if (this.Host) Logger.info(`Listening on http://${this.Host}:${this.Port}`)
 | 
				
			||||||
      else Logger.info(`Listening on port :${this.Port}`)
 | 
					      else Logger.info(`Listening on port :${this.Port}`)
 | 
				
			||||||
@ -383,6 +396,7 @@ class Server {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async stop() {
 | 
					  async stop() {
 | 
				
			||||||
 | 
					    Logger.info('=== Stopping Server ===')
 | 
				
			||||||
    await this.watcher.close()
 | 
					    await this.watcher.close()
 | 
				
			||||||
    Logger.info('Watcher Closed')
 | 
					    Logger.info('Watcher Closed')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user