当我尝试通过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]
你不会失望的!!