我如何杀死一个rails webbrick服务器



当我尝试通过rails s启动服务器时,我得到以下错误消息:

C:UsersFrankieDocumentsstocktracker>rails s
=> Booting WEBrick
=> Rails 3.2.8 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
A server is already running. Check C:/Users/Frankie/Documents/stocktracker/tmp/p
ids/server.pid.
Exiting

server.pid中列出的数字是8436。

如何手动终止此进程?我怎么能很容易地杀死所有的webrick服务器目前正在运行?

你可以使用taskkill工具

taskkill /PID 8436

如果您在OSX上使用iTerm2,您可以打开Toolbelt => ShowToolbelt,选择ruby pid 8436,然后单击发送信号来杀死它。有时候任务终止对我不起作用。

也可以使用ps -aux | grep rails来查找pid。然后像其他答案建议的那样杀死。

下面的任务定义适合我(把它放在*中)。在libtasks文件夹中的Rake文件):

namespace :server do
  # ---------------------------------------------------------------------------
  desc "Clear the previous server instance clutter."
  task :cleanup => :environment do      
    pidfile = 'tmp/pids/server.pid'
    if File.exists? pidfile
      pid = File.read(pidfile).to_i
      if RbConfig::CONFIG['host_os'] =~ /mswin32/
        sh "taskkill /f /pid #{pid}"
        sh "del tmp\pids\server.pid"
      else
        sh "kill #{pid}"
        sh "rm #{pidfile}"
      end
      puts "All cleaned up. Yay!"
    else
      puts "Already clean. Whew!"
    end
  end
  # ---------------------------------------------------------------------------
  desc "Start an instance of the server cleanly."
  task :startup => :cleanup do
    sh "rails server"
  end
  # ---------------------------------------------------------------------------
end

现在只需运行

rake server:startup

在尝试再次运行rails服务器之前,它会清理windows上所有剩余的进程和pid文件。

对于Linux/Ubuntu Users, ubuntu有kill命令。当运行webrick服务器时,在位置APP_DIR/tmp/pids/server.pid内的项目目录中将保存所有进程id。
你只需要打开文件,你会发现当前运行的服务器的进程Id。现在可以使用以下命令终止

进程
$ kill [pid] # Example kill 8123

按以下步骤操作:

1。查找'rails '进程id: ps -aux | grep rails

2。使用带有-9选项的kill命令:kill -p [PID]

你不会失望的!!

相关内容

  • 没有找到相关文章

最新更新