从Rails控制台将logstash命令作为子进程运行的问题

时间:2017-07-23 05:44:54

标签: ruby-on-rails logstash

我正在尝试从后台的rails控制台运行logstash命令,将日志文件解析为JSON,并使用JSON使用ActiveRecord将数据插入到数据库中。 我正面临使用子进程命令或Spawn的问题,因为所有人都给我一个错误,即Bundler :: GemNotFound:在Gemfile中列出的任何gem源中都找不到gem'tzinfo-data java'。好像Rails无法运行JVM代码,但我认为logstash只是用Ruby编写的。

命令:cat #{filePath} | #{logstashDir} -f #{logstash_config}

环境: Ruby v2.4.1p111 Rails v5.1.2 Logstash v5.5.0

1 个答案:

答案 0 :(得分:0)

这里的问题相同。我使其工作的方式是取消设置子shell env变量“RUBYLIB”和“RUBYOPT”。把你的命令放在这样的:

#!/usr/bin/env bash

unset RUBYLIB
unset RUBYOPT

#YOUR CODE