这种情况在我多次使用Rails控制台进行#update或#destroy操作时发生过,希望能在这里找到答案。
有时候当我在控制台上执行一个对象的#update或#destroy操作时,我的控制台会在日志中显示“BEGIN”后简单地冻结。目前我有一个简单的destroy操作还在那里等了十分钟。
例如:
my_object.find(permitted_params[:thing][:id]).destroy
我的Mac上按下CTRL+C并不会终止程序,而是简单地呈现:
^C^C^C^C^C^C^C^C^C^C
然后,当我终于关闭该选项卡并重新启动服务器时,我会收到以下内容:
A server is already running. Check /path/to/app/tmp/pids/server.pid.
当我清除server.pid
并尝试重新启动服务器时,会出现以下情况:
/Users/nickschwaderer/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:206:in `bind': Address already in use - bind(2) for 127.0.0.1:3000 (Errno::EADDRINUSE)
在那时,我运行了lsof -wni tcp:3000
,然后kill -9 #whatever_my_pid_was
,最终设置一切以重新运行服务器。
这到底是怎么回事?