Ruby on rails 为什么我的服务器告诉我已经有一个应用程序在端口3000上运行?
我正在尝试使用Rails后端运行React应用程序。我将rails服务器代理到端口3001,将React服务器设置为在3000上运行,并将rake任务设置为启动它们。但是,当我运行rake命令时,服务器启动,然后立即关闭,表示端口3000上已经有东西在运行。我已经使用TCPview进行了检查,并确认在端口3000上没有运行任何东西,或者就这一点而言,在3000的任何端口上都没有运行任何东西。此外,我有一个朋友在Mac电脑上克隆了repo,并试图启动服务器,这对她来说效果很好。对于其他可能导致此问题的原因,我们非常感谢。作为记录,我在一台windows计算机上,试图在atom终端上运行该应用程序。以下是package.json,指定代理:Ruby on rails 为什么我的服务器告诉我已经有一个应用程序在端口3000上运行?,ruby-on-rails,reactjs,window,localhost,atom-editor,Ruby On Rails,Reactjs,Window,Localhost,Atom Editor,我正在尝试使用Rails后端运行React应用程序。我将rails服务器代理到端口3001,将React服务器设置为在3000上运行,并将rake任务设置为启动它们。但是,当我运行rake命令时,服务器启动,然后立即关闭,表示端口3000上已经有东西在运行。我已经使用TCPview进行了检查,并确认在端口3000上没有运行任何东西,或者就这一点而言,在3000的任何端口上都没有运行任何东西。此外,我有一个朋友在Mac电脑上克隆了repo,并试图启动服务器,这对她来说效果很好。对于其他可能导致此问
{
"name": "fidirect",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:3001/",
"devDependencies": {
"enzyme": "2.4.1",
"react-addons-test-utils": "15.4.0",
"react-scripts": "0.8.5"
},
以下是程序文件:
web: cd client && npm start
api: bundle exec rails s -p 3001
这里是rake任务:
task :start do
exec 'foreman start -p 3000'
end
同样,我知道这段代码是有效的,我只是不明白为什么它在我的本地环境中不起作用,而且在端口3000上肯定没有运行任何代码。提前感谢您的帮助!
编辑*这里是我运行netstat-potcp时出现的所有内容的完整列表。在我看来,这证实了端口上没有运行任何东西。我错过什么了吗
Proto Local Address Foreign Address State PID
TCP 10.1.10.143:49435 msnbot-65-52-108-214:https ESTABLISHED
4004
TCP 10.1.10.143:49437 msnbot-65-52-108-235:https ESTABLISHED
4004
TCP 10.1.10.143:53182 msnbot-65-52-108-192:https ESTABLISHED
16656
TCP 10.1.10.143:53412 138.68.43.221:https ESTABLISHED 17768
TCP 10.1.10.143:53556 pg-in-f188:5228 ESTABLISHED 7504
TCP 10.1.10.143:53565 151.101.129.69:https ESTABLISHED 7504
TCP 10.1.10.143:53673 lb-192-30-253-125-iad:https ESTABLISHED
7504
TCP 10.1.10.143:53715 a23-49-12-43:https ESTABLISHED 7504
TCP 10.1.10.143:53737 151.101.1.121:https ESTABLISHED 7504
TCP 10.1.10.143:53738 151.101.1.121:https ESTABLISHED 7504
TCP 10.1.10.143:53741 a104-91-221-98:https ESTABLISHED 7504
TCP 10.1.10.143:53746 151.101.1.121:https ESTABLISHED 7504
TCP 10.1.10.143:53749 151.101.1.121:https ESTABLISHED 7504
TCP 10.1.10.143:53754 151.101.2.202:https ESTABLISHED 7504
TCP 10.1.10.143:53759 a23-5-213-46:https ESTABLISHED 7504
TCP 10.1.10.143:53776 192.0.73.2:https ESTABLISHED 7504
TCP 10.1.10.143:53779 server-52-84-237-186:https ESTABLISHED
7504
TCP 10.1.10.143:53782 a-0001:https ESTABLISHED 14932
TCP 10.1.10.143:53783 13.107.19.11:https ESTABLISHED 14932
TCP 10.1.10.143:53784 13.107.6.254:https ESTABLISHED 14932
TCP 10.1.10.143:53785 204.79.197.254:https ESTABLISHED 14932
TCP 10.1.10.143:53786 13.107.42.254:https ESTABLISHED 14932
TCP 10.1.10.143:53787 204.79.197.222:https ESTABLISHED 14932
有时您的服务器无法正确关闭。 在终端中,运行:
lsof -wni tcp:3000
您将看到正在运行的进程
ruby 91287 XXXXXX 10u IPv4 032ce99031751a206c1 0t0 TCP *:hbci (LISTEN)
然后使用显示的数字并杀死它:
kill -9 91287
重复此操作直到ruby进程消失我无法使用lsof。是否有一个windows命令可以完成同样的任务?如果你打开任务管理器,你可能会发现它。Netstat-b应该显示windows上的活动端口。