Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么我的服务器告诉我已经有一个应用程序在端口3000上运行?_Ruby On Rails_Reactjs_Window_Localhost_Atom Editor - Fatal编程技术网

Ruby on rails 为什么我的服务器告诉我已经有一个应用程序在端口3000上运行?

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,并试图启动服务器,这对她来说效果很好。对于其他可能导致此问

我正在尝试使用Rails后端运行React应用程序。我将rails服务器代理到端口3001,将React服务器设置为在3000上运行,并将rake任务设置为启动它们。但是,当我运行rake命令时,服务器启动,然后立即关闭,表示端口3000上已经有东西在运行。我已经使用TCPview进行了检查,并确认在端口3000上没有运行任何东西,或者就这一点而言,在3000的任何端口上都没有运行任何东西。此外,我有一个朋友在Mac电脑上克隆了repo,并试图启动服务器,这对她来说效果很好。对于其他可能导致此问题的原因,我们非常感谢。作为记录,我在一台windows计算机上,试图在atom终端上运行该应用程序。以下是package.json,指定代理:

{
 "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上的活动端口。