Настройка shotgun для запуска thin с флагом отладки


Я пытаюсь заставить отладчик gem работать с shotgun, и для работы отладчика мне нужно, чтобы тонкий сервер был запущен с "Debugging ON".

Если я выполняю либо:

shotgun -p 1378 -s thin -d -o 0.0.0.0
shotgun -p 1378 -s thin --debug -o 0.0.0.0

Я получаю shotgun, начиная с переменной $ DEBUG ruby, установленной в true, вместо того, чтобы запускать тонкий сервер с флагом отладки.

Если я бегу:

shotgun -pp 1378 -s "thin --debug" -o 0.0.0.0

Я получаю ошибку. Есть ли другой способ запустить это, или какой-то способ сказать thin, чтобы начать в режиме отладчика, когда среда настроена на развитие?

1 3

1 ответ:

Ваш -d и--debug варианты интерпретируются дробовиком , а не тонким, и это то, что устанавливает $DEBUG в true.

Флаг командной строки Thin для включения отладки является -D или --debug и это устанавливает Thin::Logging.debug в true. Вы не можете использовать параметры командной строки thin (если командная строка читается командой shotgun, которая запускает сервер), но вы можете установить эту переменную с помощью обычного кода Ruby. Один из способов сделать это был бы с a shotgun.rb файл, который требует тонкого и изменяет настройку:

require 'thin'
Thin::Logging.debug = true

(Вы можете поместить это в begin...rescue...block и спасти LoadError в случае, если Thin недоступен.)

Вывод без этого файла:

$ shotgun
== Shotgun/Thin on http://127.0.0.1:9393/
>> Thin web server (v1.4.1 codename Chromeo)
>> Maximum connections set to 1024
>> Listening on 127.0.0.1:9393, CTRL+C to stop

И с файлом:

$ shotgun
== Shotgun/Thin on http://127.0.0.1:9393/
>> Thin web server (v1.4.1 codename Chromeo)
>> Debugging ON
>> Maximum connections set to 1024
>> Listening on 127.0.0.1:9393, CTRL+C to stop
Насколько я могу судить, эта настройка влияет только на многословность ведения журнала Thin и не имеет ничего общего с отладчиком gem.