diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2022-05-19 11:49:07 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-19 11:49:07 +0900 |
| commit | b6794b614b701ff1bfde98de5b4fa8735f5155b0 (patch) | |
| tree | 76cc16077d50b16cc148facfe6f28f08cfaafb67 /packages/backend/src/server | |
| parent | remove unneeded attrs (#8673) (diff) | |
| download | sharkey-b6794b614b701ff1bfde98de5b4fa8735f5155b0.tar.gz sharkey-b6794b614b701ff1bfde98de5b4fa8735f5155b0.tar.bz2 sharkey-b6794b614b701ff1bfde98de5b4fa8735f5155b0.zip | |
enhance: Perform port diagnosis at startup only when Listen fails (#8698)
* Change port check
* Comment: disableClustering
* CHANGELOG
* Smart message
Diffstat (limited to 'packages/backend/src/server')
| -rw-r--r-- | packages/backend/src/server/index.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/packages/backend/src/server/index.ts b/packages/backend/src/server/index.ts index c1a2a6dfff..cd061da725 100644 --- a/packages/backend/src/server/index.ts +++ b/packages/backend/src/server/index.ts @@ -2,6 +2,7 @@ * Core Server */ +import cluster from 'node:cluster'; import * as fs from 'node:fs'; import * as http from 'node:http'; import Koa from 'koa'; @@ -142,5 +143,26 @@ export default () => new Promise(resolve => { initializeStreamingServer(server); + server.on('error', e => { + switch ((e as any).code) { + case 'EACCES': + serverLogger.error(`You do not have permission to listen on port ${config.port}.`); + break; + case 'EADDRINUSE': + serverLogger.error(`Port ${config.port} is already in use by another process.`); + break; + default: + serverLogger.error(e); + break; + } + + if (cluster.isWorker) { + process.send!('listenFailed'); + } else { + // disableClustering + process.exit(1); + } + }); + server.listen(config.port, resolve); }); |