From 16cd648181f892b075b0be9bb9941f9a28b25ee2 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Sat, 22 Apr 2017 02:24:31 +0900 Subject: [PATCH] Allow to listen Unix socket (#2085) * Allow puma to listen Unix socket * streaming: Show the whole listening address instead of the port Port is not always appropriate (e.g. Unix socket) * streaming: Close server before exiting This change especially allows to remove Unix socket before exiting. --- config/puma.rb | 4 ++++ streaming/index.js | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/config/puma.rb b/config/puma.rb index 7586536f44..eb8fc6a8e9 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,6 +1,10 @@ threads_count = ENV.fetch('MAX_THREADS') { 5 }.to_i threads threads_count, threads_count +if ENV['SOCKET'] then + bind 'unix://' + ENV['SOCKET'] +end + port ENV.fetch('PORT') { 3000 } environment ENV.fetch('RAILS_ENV') { 'development' } workers ENV.fetch('WEB_CONCURRENCY') { 2 } diff --git a/streaming/index.js b/streaming/index.js index 8395c9cf8e..c7959b3069 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -328,6 +328,14 @@ if (cluster.isMaster) { server.listen(process.env.PORT || 4000, () => { log.level = process.env.LOG_LEVEL || 'verbose' - log.info(`Starting streaming API server worker on port ${server.address().port}`) + log.info(`Starting streaming API server worker on ${server.address()}`) }) + + process.on('SIGINT', exit) + process.on('SIGTERM', exit) + process.on('exit', exit) + + function exit() { + server.close() + } }