8

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

C:\Users\Frankie\Documents\stocktracker>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 服务器?

4

5 回答 5

12

您可以使用 taskkill 实用程序。

taskkill /PID 8436
于 2013-01-09T18:58:21.007 回答
1

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

此外,您可以ps -aux | grep rails找到 pid。然后像其他答案推荐的那样杀死。

于 2014-05-11T04:15:47.340 回答
0

以下任务定义适用于我(将其放在 lib\tasks 文件夹中的 *.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 服务器之前,它会清理 Windoze 上的所有剩余进程和 pid 文件。

于 2014-05-10T22:52:41.843 回答
0

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

$ kill [pid] # Example kill 8123
于 2015-02-03T12:47:23.463 回答
-2

跟着这些步骤:

1.通过以下方式查找'rails s'进程ID: ps -aux | grep 导轨

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

你不会失望的!!

于 2015-08-19T07:10:54.197 回答