`require':无法加载这样的文件 - 从bash脚本运行ruby

时间:2015-03-18 20:59:20

标签: ruby service centos

我正在尝试在我的centos机器上运行ruby脚本作为服务。我可以直接从命令行和bash文件运行ruby脚本而不会出现问题。

但是,当我尝试通过/etc/init.d将其作为服务运行时,我收到错误'require': cannot load such file - somegem。

#! /home/user/.rvm/rubies/ruby-2.1.5/bin/ruby
# encoding: utf-8

require "somegem"

我创建了一个init.d脚本并将其放在/etc/init.d /

#!/bin/sh
# monitor_endpoint
# chkconfig: 2345 20 80

# Source function library.
. /etc/rc.d/init.d/functions

#Define variables
prog="monitor_endpoint"
exec=/home/user/Workspaces/test/bin/test.rb
echo $exec

start() {
    echo -n $"Starting $prog: "
    # use daemon to start the service
    daemon $exec &
    retval=$?
    echo
    return $retval
}

etc...

我的宝石安装路径会出现问题吗?

任何帮助都会非常感激,因为这是我第一次尝试以这种方式运行ruby脚本。谢谢。

1 个答案:

答案 0 :(得分:1)

问题出在你的环境中(env vars)。 运行

env

在正常环境中,然后从init脚本运行它并将输出传递给文件。

看看差异。

猜测你错过了所有特定的红宝石(GEM_PATH和所有)