为什么我的WEBrick服务器被杀?

ada*_*0mb 9 ubuntu ruby-on-rails webrick ruby-on-rails-3 digital-ocean

我在Ubuntu 12.04上有一个在DigitalOcean上运行的rails开发环境,但是我的WEBrick进程在几个小时后就会被"杀死".我无法找到任何可能导致此问题的设置或配置.

示例控制台输出:

user@machinename:~/git/app$ rails s
=> Booting WEBrick
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2014-01-05 09:14:29] INFO  WEBrick 1.3.1
[2014-01-05 09:14:29] INFO  ruby 2.0.0 (2013-11-22) [x86_64-linux]
[2014-01-05 09:14:29] INFO  WEBrick::HTTPServer#start: pid=23452 port=3000


Started GET "/" for x.x.x.x at 2014-01-05 09:14:37 +0000
Processing by FunController#welcome as HTML
...
Run Code Online (Sandbox Code Playgroud)

当我使用它时,服务器和应用程序运行正常.但是,在某些时候,我的服务器将退出工作.而且,我会看一下控制台,看看WEBrick的这个输出:

Killed
Run Code Online (Sandbox Code Playgroud)

然后把我踢回壳里.是什么原因引起了这个?

Kev*_*vin 15

它耗尽内存.Linux内核将其杀死.默认情况下,Droplet没有任何'swap',因此当内存变满时,它会终止进程或者不会让你开始新的进程.有点疯狂.

这是一篇文章,引导您完成添加交换文件:

https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04
Run Code Online (Sandbox Code Playgroud)

注意:当'swappiness'设置为0时,即使在添加交换文件后,编译器进程仍被"杀死"仍然存在一些问题.将其添加到20可解决问题.

注2:你真的不应该像其他人在评论中提到的那样在生产中使用webrick.不过,一个问题是一个问题:)