Запуск Ruby-скрипта по cron или из Teamcity

// Сентябрь 6th, 2011 // Ruby

Очень часто встает задача запускать мелкие скрипты на ruby/php из консоли по расписанию. Мы также пишем небольшие утилитки и привязываем их к нашему любимому средству развертывания TeamCity.

Но руби скрипт не отображается в процессах, при том, что из консоли он запускается нормально. Оказывается дело было в кодировке. Используемый нами гем inifile, который парсит ini-файлы вываливался с ошибкой.

[18:22:31]: [exec] /home/user/ruby/functions.rb:43:in `=~': invalid byte sequence in US-ASCII (ArgumentError)
[18:22:31]: [exec] from /home/webadmin/sandbox/site.ru/misc/ruby/functions.rb:43:in `parse'
[18:22:31]: [exec] from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/inifile-0.4.1/lib/inifile.rb:61:in `initialize'
[18:22:31]: [exec] from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/inifile-0.4.1/lib/inifile.rb:30:in `new'
[18:22:31]: [exec] from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/inifile-0.4.1/lib/inifile.rb:30:in `load'

Гугление по тексту ошибки привело сюда. Оказывается надо было всего-лишь добавить одну строчку в /etc/environment:

LANG="en_US.UTF-8"

После этого всё заработало без ошибок.

Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


Комментировать