`require': 无法从 bash 脚本加载这样的文件 - 运行 ruby
`require': cannot load such file - Running ruby from bash script
我正在尝试 运行 ruby 脚本作为我的 centos 机器上的服务。我可以直接从命令行和 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...
这会不会是我的 gems 安装路径有问题?
任何帮助将不胜感激,因为这是我第一次尝试 运行 以这种方式创建 ruby 脚本。谢谢。
问题出在您的环境(环境变量)中。
运行
env
在正常环境中,然后 运行 它从初始化脚本并将输出通过管道传输到文件。
看看差异。
我猜你错过了所有 ruby 特定的东西(GEM_PATH 和所有)
我正在尝试 运行 ruby 脚本作为我的 centos 机器上的服务。我可以直接从命令行和 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...
这会不会是我的 gems 安装路径有问题?
任何帮助将不胜感激,因为这是我第一次尝试 运行 以这种方式创建 ruby 脚本。谢谢。
问题出在您的环境(环境变量)中。 运行
env
在正常环境中,然后 运行 它从初始化脚本并将输出通过管道传输到文件。
看看差异。
我猜你错过了所有 ruby 特定的东西(GEM_PATH 和所有)