我想在我的centos機器上運行一個ruby腳本作爲服務。我可以直接從命令行和bash文件直接運行ruby腳本,沒有問題。`require':無法加載這樣的文件 - 從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/boot.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腳本。謝謝。
是當它通過後臺程序運行下運行什麼帳戶的腳本?也許在腳本的開頭輸出'whoami'來檢查? – Beartech 2015-03-19 02:36:56
whoami在init.d腳本中返回根目錄。爲什麼這會表現得很差,我能做些什麼來彌補這一點? – CatsLoveJazz 2015-03-19 08:12:54