Невозможно остановить WEBrick 1.3.1 с помощью ctrl-c в Ubuntu 11.04

Я с использованием 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 for драгоценный камень.

обновление 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 . Я догадываюсь, что упомянутый ими драгоценный камень также выполняет системный вызов.

33
задан Community 23 May 2017 в 12:25
поделиться