Ich habe ein init.d-Skript erstellt, um ein neuesrelic-Plugin als Daemon zu starten. Das Problem ist, dass wenn ich service rb_nr_agent start
ausführen, es einige Fehler im Zusammenhang mit "require" hat. Ausgang:Require in Init.d-Skript
[[email protected] newrelic_rb_plugin]# /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- snmp (LoadError)
from /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /opt/newrelic_rb_plugin/newrelic_redborder_agent:5:in `<main>'
[[email protected] newrelic_rb_plugin]# ./rb_nr_agent start Starting rb_nr_agent:[ OK ]
Es startet nicht richtig. Wenn ich das gleiche Skript aber im Stammpfad des Projekts ausführe, hat es keinen Fehler und es funktioniert gut. Das init.d ist eine Kopie von diesem. Hier haben Sie die Startoption des Skripts:
start() {
RESULT=`ps aux | grep $executable | grep -c -v grep`
if [ "${RESULT:-null}" -ge "1" ]; then
echo "$prog is currently running"
else
echo -n "Starting $prog: "
/opt/newrelic_rb_plugin/newrelic_redborder_agent > /dev/null &
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo_success
else
echo_failure; failure
RETVAL=1
fi
echo
fi
return $RETVAL }
An der Spitze des Zieldatei (/ opt/newrelic_rb_plugin/newrelic_redborder_agent) addiere '' puts $ LOAD_PATH'' und führe sie mit '' service ... start'' aus. Danach führe es erneut so wie es funktioniert und überprüfe, ob es irgendwelche Unterschiede gibt. –