当我在终端运行时:
lsof -n -i4TCP:8081
我明白了
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)
这个sunproxyadmin是什么?
答案 0 :(得分:12)
Per http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8081,TCP端口8081是sunproxyadmin的众所周知的端口,80就是众所周知的http端口。在这种情况下,您有一个正在侦听端口8081的节点进程,但是lsof正在尝试提供帮助并为此显示众所周知的端口。在linux下,这是在/ etc / services中定义的;我希望OS X类似。
修改1:请注意,按Apple Man Pages传递-P
禁止将端口号转换为网络文件的端口名称 抑制转换可能会使lsof运行得更快一些。它 在端口名称查找不正常时也很有用。
这会导致lsof无法打印出令人困惑的sunproxyadmin,因为它恰好使用了Sun注册的端口。
编辑2:您的回复中的第二列(例如,第一行中的10901,您想要的那个,以及第二行中的11957)应该是进程ID。如果您执行ps aux | grep 10901
(或ps elf | grep [pid]
,因为我记不起哪个适用于OSX并且没有方便),您应该得到类似的内容:
apache 19783 0.0 0.2 251888 8580? S Oct07 0:00 / usr / sbin / httpd -DFOREGROUND
(或提出一些建议:
nodeuser 10901 0.0 0.2 251888 8580? S Oct07 0:00节点index.js
)
您可以使用kill -9 10901
(或任何PID)将其终止,但如果它作为服务或什么运行,它可能会发现它会回来。
这足以添加到您的bash配置文件中:
function findbyport()
{
sudo lsof -P -iTCP:$1 -sTCP:LISTEN
}
答案 1 :(得分:4)
答案 2 :(得分:0)
如果您不想杀死sunproxyadmin
进程,请尝试使用以下命令在不同的端口启动React native:
react-native start --port your_port
然后打开Dev settings
(请参阅how to open dev menu),然后修改调试服务器主机&设备端口:your_local_ip:your_port
答案 3 :(得分:-1)
我的 Mac 上运行着这个 MACAFEE 杀毒软件。 我可以杀死它(虽然我不应该杀死它,但我尝试了它,看起来它永远不会死!毕竟Sudo没有力量!)。所以经过大量研究我试过这个。
第 1 步:获取进程的 PID 须藤 lsof -n -i4TCP:8081 第 2 步:找到启动的端点 sudo launchctl 列表 |格雷普 第 3 步:删除 mcafee sudo launchctl 删除 com.mcafee.agent.macmn
如果这个对你有用,请感谢我和https://fantashit.com/unable-to-perform-react-native-start/