ruby-on-rails – 无法在Ubuntu 11.04上使用ctrl-c停止WEBrick 1.3.1

我使用RVM,Ruby 1.9.2和Rails 3.0.7

来自另一个终端的进程的标准杀死不起作用,当然,杀死-9。

我发现了一个类似的问题,CTRL+C to Webbrick server ignored,但它不清楚,这个问题是否描述相同的基本问题。此外,解决方案似乎不适用,因为我不使用:git在我的Gemfile。

更新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

事实上,这个问题是由Rails与一个宝石的互动造成的,现在我相信这个问题实际上是与CTRL+C to Webbrick server ignored相关,虽然上面的测试用例显示,这一个明显不是由使用:git造成的。

更新2:

在更新1我提到,我把它缩小到一个宝石。当我经历那个宝石,我最终发现真正的罪魁祸首。宝石正在做一个单一的系统调用。我对测试脚本做了一个非常小的修改,我不再加载barista gem,而是我只是附加一个系统调用在application.rb结束。使用该系统调用,ctrl-c不工作。删除系统调用,它会工作。

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

bundle

echo "\`date\`" >> config/application.rb

rails s

这可以解释这个问题和CTRL+C to Webbrick server ignored之间的似乎相似。我的希望是,他们提到的gem也进行系统调用。

我宁愿评论,但为此添加一个答案,但没有足够的代表。

我有同样的问题,发现恢复(使用fg)后键入ctrl-c然后暂停(使用ctrl-z,如上所述)做的伎俩。

所以配方是:

> ctrl-c(什么都没做)
> ctrl-z(暂停WEBrick,回到shell)
> fg(恢复WEBrick,立即通过SIGINT)

lampadmin@lampadmin-DX4840:/var/www/rails/agences$ r s
=> Booting WEBrick
=> Rails 3.0.5 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-05-14 14:25:36] INFO  WEBrick 1.3.1
[2011-05-14 14:25:36] INFO  ruby 1.9.2 (2011-02-18) [x86_64-linux]
[2011-05-14 14:25:36] INFO  WEBrick::HTTPServer#start: pid=2585 port=3000

^ C ^ Z(< - ctrl-c,then ctrl-z)

[1]+  Stopped                 rails s
lampadmin@lampadmin-DX4840:/var/www/rails/agences$ fg
rails s
[2011-05-14 14:25:45] INFO  going to shutdown ...
[2011-05-14 14:25:45] INFO  WEBrick::HTTPServer#start done.
Exiting
http://stackoverflow.com/questions/5891567/cant-stop-webrick-1-3-1-with-ctrl-c-on-ubuntu-11-04

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – 无法在Ubuntu 11.04上使用ctrl-c停止WEBrick 1.3.1