Как записать вывод системных команд в Rails в производственном режиме? - PullRequest
1 голос
/ 12 ноября 2010

Я вызываю исполняемый файл C в моем приложении Rails (-v 2.3.5), используя вызов system ().

makefile_path = File.expand_path('./c_executalbe', Rails.root)
system(makefile_path)

Все отлично работает на моей локальной машине, но по какой-то причине вызов system () не запускается на сервере (dreamhost). И нет никаких сообщений об ошибках в log / production.log. Я хотел бы видеть возвращенный вывод этого системного вызова в журнале. Как я могу это сделать?

Заранее спасибо!

1 Ответ

4 голосов
/ 12 ноября 2010

См .: http://ruby -doc.org / core / classes / Kernel.html # M005960

Использование:

output = %x(command)
output = `command`
output = Kernel.send(:`, "command")

Вы получите вывод команды.

Если command происходит из переменной, как в вашем случае, вы можете интерполировать:

output = %x(#{makefile_path})
output = `#{makefile_path}`
output = Kernel.send(:`, makefile_path)

Для входа в систему log/production.log:

logger.info output
# or
puts output
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...