Я использую RVM, Ruby 1.9.2 и Rails 3.0.7
Стандартное уничтожение процесса из другого терминала тоже не работает, но, конечно, kill -9 делает.
Я нашел похожий вопрос, CTRL + C на сервере Webbrick проигнорировал , но неясно, описывает ли этот вопрос ту же самую основную проблему. Кроме того, разрешение, кажется, не применяется, так как я не использую: 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 для сервера Webbrick, игнорируемого , хотя тестовый пример выше показывает, что этот явно не вызван использованием: git для драгоценного камня.
обновление 2:
В обновлении 1 Я упоминал, что сузил его до жемчужины. Когда я прошел этот драгоценный камень, я в конечном итоге нашел настоящего преступника. Драгоценный камень делал один системный вызов. Я сделал очень незначительную модификацию тестового скрипта, где я больше не загружаю гем бариста, а просто добавляю один системный вызов в конце 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 на сервере Webbrick, игнорируемом . Я догадываюсь, что камень, о котором они говорят, также делает системный вызов.