Я использую 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. Я подозреваю, что драгоценный камень, о котором они упоминают, также выполняет системный вызов.
Ctrl + C
,Ctrl + Z
, затемfg
. Было бы здорово, если бы было найдено реальное решение, но пока я собираюсь принять это как обходной путь. - person Tass   schedule 24.05.2011killall -9 ruby
. Отказ от ответственности: возможны неожиданные результаты закрытия других процессов. - person AJFaraday   schedule 29.11.2017