Форман показывает только строку с " started wit pid #" и ничего больше
когда я бегу бригадир я получаю следующее:
> foreman start
16:47:56 web.1 | started with pid 27122
только если я остановлю его (через ctrl-c) он показывает мне, что отсутствует:
^CSIGINT received
16:49:26 system | sending SIGTERM to all processes
16:49:26 web.1 | => Booting Thin
16:49:26 web.1 | => Rails 3.0.0 application starting in development on http://0.0.0.0:5000
16:49:26 web.1 | => Call with -d to detach
16:49:26 web.1 | => Ctrl-C to shutdown server
16:49:26 web.1 | >> Thin web server (v1.3.1 codename Triple Espresso)
16:49:26 web.1 | >> Maximum connections set to 1024
16:49:26 web.1 | >> Listening on 0.0.0.0:5000, CTRL+C to stop
16:49:26 web.1 | >> Stopping ...
16:49:26 web.1 | Exiting
16:49:26 web.1 | >> Stopping ...
Как это исправить?
6 ответов:
я смог решить эту проблему двумя различными способами:
от https://github.com/ddollar/foreman/wiki/Missing-Output:
Если вы не видите никакого выхода из вашей программы, есть вероятность шанс, что это буферизация stdout. Ruby буферы stdout по умолчанию. К отключить данную функцию, добавьте этот код как можно раньше программа:
# ruby $stdout.sync = true
установка Форман через heroku toolbelt package
но я до сих пор не знаю, что происходит, ни почему это 2 выше способов решить проблему...
мое решение было поставить
$stdout.sync = true
в верхней части файла config/сред/развития.рубидий.тогда все, что загружает среду разработки (включая тонкий), не будет буферизовать stdout.
" Форман выведет на вывод терминала все, что записано в stdout процессами, которые он запускает."- доллару вижу бригадир-выпуски#57
кстати, вы можете использовать tailf в Procfile, чтобы увидеть журналы
web: bundle exec rails server thin -p $PORT log: tail -f log/development.log
Совет: tailf не существует в OSX, используя tail-f-n 40 log/development.лог работает.
У меня та же проблема (ruby 1.9.3-p0, rails 3.2rc2, OSX 10.7).
решил проблему с помощью foreman-0.27.0, добавив эту строку в мой Gemfile.
gem 'foreman', '0.27.0'
у меня тоже была такая же проблема, но с другим решением. (ruby 1.9. 2p290, rails 3.1.0, ubuntu 10.04.3)
Я изменил строку в моем Procfile от:
web: bundle exec thin start -p $PORT
to:
web: bundle exec rails server thin -p $PORT
и это больше не давало мне проблемы.
Если вы используете Foreman для запуска проекта Python, а не проекта Ryby, и у вас такая же проблема, вот некоторые решения для вас. Если вы используете Procfile для прямого вызова интерфейса командной строки python, то вы можете использовать опцию '-u', чтобы избежать буферизации stdout:
python -u script.py
Если вы используете Procfile для управления сервером WSGI, например, вызывая gunicorn, flask, bottle, eve и т. д., то вы можете добавить".env " файл в корень вашего проекта python, содержащий следующее:
PYTHONUNBUFFERED=True