我正在尝试在我的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脚本。谢谢。
答案 0 :(得分:1)
问题出在你的环境中(env vars)。 运行
env
在正常环境中,然后从init脚本运行它并将输出传递给文件。
看看差异。
猜测你错过了所有特定的红宝石(GEM_PATH和所有)