我正在使用RVM,Ruby 1.9.2和Rails 3.0.7
从另一个终端标准杀死进程也不起作用,但当然杀掉-9.
我发现了一个类似的问题,忽略了对Webbrick服务器的CTRL + C,但目前还不清楚这个问题是否描述了同样的根本问题.此外,分辨率似乎不适用,因为我没有在我的Gemfile中使用:git.
更新1 :(旧的现在...请参阅下面的更新2,了解真正的独家新闻)
我设法将问题缩小到一个宝石.如果您提供以下测试脚本,您也可以看到问题(假设您使用的是Ubuntu 11.04 ... 10.04中没有问题)
rm -rf tmpkilltest
rvm 1.9.2
rvm --force gemset delete tmpkilltest
rvm gemset create tmpkilltest
rvm 1.9.2@tmpkilltest
gem install rails -v=3.0.7 --no-rdoc --no-ri
gem install sqlite3 -v=1.3.3 --no-rdoc --no-ri
rails new tmpkilltest
cd tmpkilltest
echo "gem 'barista', '1.0'" >> Gemfile
bundle
rails s
Run Code Online (Sandbox Code Playgroud)
该问题是由Rails的互动与宝石造成的事实使我现在相信,这个问题实际上是涉及到CTRL + C来Webbrick服务器忽略的,虽然上面的测试情况表明,这一个显然不会使用造成的: git for a gem.
更新2:
在更新1中,我提到我将其缩小为宝石.当我经历那个宝石时,我终于找到了真正的罪魁祸首.宝石正在进行一次系统调用.我对测试脚本做了一个非常小的修改,我不再加载barista gem,而是在application.rb的末尾添加一个系统调用.使用该系统调用,ctrl-c不起作用.删除系统调用,它确实有效.
rm -rf tmpkilltest
rvm …Run Code Online (Sandbox Code Playgroud) 我可能误解了一些事情.不应该ubuntu:12.10内核高于ubuntu:12.04一个?
$ sudo docker run ubuntu:12.04 /bin/uname -a
Linux cb466a57b8c2 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
$ sudo docker run ubuntu:12.10 /bin/uname -a
Linux 62aadcf4e486 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
这是版本信息:
$ sudo docker version
Client version: 0.5.3
Server version: 0.5.3
Go version: go1.1