summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2022-05-19 11:49:07 +0900
committerGitHub <noreply@github.com>2022-05-19 11:49:07 +0900
commitb6794b614b701ff1bfde98de5b4fa8735f5155b0 (patch)
tree76cc16077d50b16cc148facfe6f28f08cfaafb67 /packages/backend/src/server
parentremove unneeded attrs (#8673) (diff)
downloadsharkey-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.ts22
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);
});