SuperUberDuper
SuperUberDuper

Reputation: 9623

Can't package react native because of port 8081 sunproxyadmin

when I run this in terminal:

lsof -n -i4TCP:8081

I get this

node      10901 me   28u  IPv6 0xbcad49      0t0  TCP *:sunproxyadmin (LISTEN)
foo 11957 me   15u  IPv4 0xbcad49      0t0  TCP 127.0.0.1:61127->127.0.0.1:sunproxyadmin (CLOSE_WAIT)

What is this sunproxyadmin?

Upvotes: 17

Views: 14550

Answers (4)

Sathish Subramani
Sathish Subramani

Reputation: 21

There is this MACAFEE antivirus running on my Mac. I am able to kill it(Even though I should not be killing it, I tried it, and looks like it never dies! Sudo has no power after all!).So after a lot of research I have tried this one.

Step 1 : Get the process' PID sudo lsof -n -i4TCP:8081 Step 2 : Find the launchd endpoint sudo launchctl list | grep Step 3 : Remove mcafee sudo launchctl remove com.mcafee.agent.macmn

If this one works for you pls say thanks to me and as well as https://fantashit.com/unable-to-perform-react-native-start/

Upvotes: 1

Michel Arteta
Michel Arteta

Reputation: 1384

Kill it, do in your terminal

sudo lsof -i :8081

from there get the PID number and then run

kill -9 <PID NUMBER>

You can check on FB documentation for more info

Upvotes: 4

Khang .NT
Khang .NT

Reputation: 1589

If you don't want to kill sunproxyadmin process, let try to start React native in different port with command: react-native start --port your_port

Then open Dev settings (see how to open dev menu), and modify Debug server host & port for device to: your_local_ip:your_port

Upvotes: 1

Foon
Foon

Reputation: 6458

Per http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8081, TCP port 8081 is the well known port for sunproxyadmin the same way 80 is the well known port for http. In this case, you have a node process that is listening on port 8081, but lsof is trying to be helpful and show the well known port for this. Under linux, this is defined in /etc/services; I would expect OS X is similar.

Edit 1: Note that per Apple Man Pages, passing -P

inhibits the conversion of port numbers to port names for network files.
Inhibiting the conversion may make lsof run a little faster. It is also useful when port name lookup is not working properly.

This should cause lsof to not print out the confusing sunproxyadmin for something that just happens to use the port that Sun registered.

Edit 2: The second column in your response (e.g. 10901 in the first row, which is the one you want, and 11957 in the second row) should be the process ID. If you do ps aux | grep 10901 (or ps elf | grep [pid], as I can't remember which works right for OSX and don't have it handy) you should get something like:

apache 19783 0.0 0.2 251888 8580 ? S Oct07 0:00 /usr/sbin/httpd -DFOREGROUND

(or to make something up:

nodeuser 10901 0.0 0.2 251888 8580 ? S Oct07 0:00 node index.js

)

You can kill it with kill -9 10901 (or whatever the PID was) though you might find it comes back if it's running as a service or what.

This is useful enough to add to your bash profile:

function findbyport()
{
  sudo lsof -P -iTCP:$1 -sTCP:LISTEN
}

Upvotes: 14

Related Questions