Create-react-app: Guess what app is already running in port 3000

Created on 14 Aug 2016  路  11Comments  路  Source: facebook/create-react-app

https://twitter.com/somebody32/status/764805492505997312

Would be nice to go one step further and give the name of the process that is using port 3000. Otherwise the next step is going to be to google how to figure out what is running on a port, which is a bit annoying and we can solve for the user :)

up for grabs!

All 11 comments

Oh, that would be really cool 馃憤

On MacOS, you can do

1) Get the PID of the process that listens on port 3000

> lsof -P | grep TCP | grep :3000
node      36663 vjeux   22u    IPv6 0x3c581a030a2b0e47        0t0     TCP *:3000 (LISTEN)

2) Get the command that started it

> ps -o command -p 36663
COMMAND
node /Users/vjeux/random/test/node_modules/react-scripts/scripts/start.js

I'm not going to implement it, so if anybody feels like it, please grab this task, should be a good first task and pretty impactful :)

Looking for a first task to try. Would it be alright if I gave it a shot? @vjeux

@millerm absolutely, go for it!

I'm guessing in most cases it is another copy of a create-react-app app.

Rails' default port is on 3000 too.

This command runs much faster for me:

lsof -i -n -P | grep TCP | grep :3000

The -i option restricts output to opened network connections rather than all open files. -n shows IP addresses, if applicable, rather than host names. Both of these options result in much faster execution.

By the way, to get the raw process number, you can use the -t option:

lsof -i:3000 -P -t

So:

ps -o command -p "$(lsof -i:3000 -P -t)"

(In this case the -n option is not needed for performance, I believe.)

losf is no standard command in every Linux distro (not on mine anyways). ss should be installed though. (Tested on fairly updated Arch, Debian and Ubuntu Distros.)

Getting process information may be OS specific. An alternative way to solve this problem is to document the process of specifying a port. For example changing package.json to:
"startport": "PORT=4444 npm run start",
"start": "react-scripts start",
Will start the webpack dev server on port 4444

816 was just merged, so I believe this can be closed now.

Was this page helpful?
0 / 5 - 0 ratings