当我尝试通过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服务器?
答案 0 :(得分:11)
您可以使用taskkill实用程序。
taskkill /PID 8436
答案 1 :(得分:1)
如果您在OSX上使用iTerm2,您可以打开Toolbelt => ShowToolbelt,选择ruby pid 8436然后点击发送信号杀死它。任何时候,任务杀戮对我都不起作用。
此外,您可以ps -aux | grep rails
找到pid。然后就像推荐的其他答案一样杀人。
答案 2 :(得分: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文件。
答案 3 :(得分:0)
对于Linux/Ubuntu
用户,ubuntu
具有kill命令。运行webrick
服务器时,在位置APP_DIR/tmp/pids/server.pid
内的项目目录中,将保存所有进程ID。
您只需要打开文件,就会找到当前正在运行的服务器的进程ID。现在,您可以使用以下命令来终止进程
$ kill [pid] # Example kill 8123
答案 4 :(得分:-2)
请按照以下步骤操作:
1.找到'rails s'进程ID: ps -aux | grep rails
2.使用带-9选项的kill命令: kill -p [PID]
你不会失望!!