Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Port "already in use" after each server restart

Searching for help with peculiar issue. Each time I stop and restart the server, I get this message:

Jim@Jim-PC MINGW64 ~/nodeProjects/express-locallibrary-tutorial
$ npm start

> [email protected] start C:\Users\Jim\nodeProjects\express-locallibrary-tutorial
> node ./bin/www

Port 3300 is already in use
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node ./bin/www`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Jim\AppData\Roaming\npm-cache\_logs\2017-09-19T17_39_10_578Z-debug.log

I change the port to 3301, it works. I stop and restart the server and receive an error that 3301 is already in use. I change the port to 3302 and it works. Stop and start and get error that 3302 is already in use.

I stopped using nodemon several days ago for the same issue on another application, and it stopped. For this application, I installed nodemon, but not globally, ran into issues and uninstalled it. But the issue persists.

I would appreciate any ideas on a solution if anyone has encountered this.

like image 294
JimB814 Avatar asked Dec 14 '22 20:12

JimB814


1 Answers

If you're using nodemon - you can handle like this:

  1. Install the kill-port node package as a dev dependency:

    npm install kill-port --save-dev
    
  2. Create a nodemon.json file in the root of your project containing:

    {
      "events": {
        "restart": "kill-port 3000",
        "crash": "kill-port 3000"
      },
      "delay": "1500"
    }
    
  3. Then, in your package.json file, have something like this:

    "scripts": {
        "start-dev": "nodemon app.js",
    }
    
  4. Then start your app in dev mode with:

    npm run start-dev
    
like image 63
Tudor Constantin Avatar answered Dec 21 '22 09:12

Tudor Constantin