sudo ./starling启动工作正常,但sudo服务starling启动失败

sudo ./starling start工作正常,但sudo service starling start sudo ./starling start sudo service starling start失败

 $ sudo ./starling start * Starting Starling Server... [ OK ] $ sudo ./starling stop * Stop Starling Server... [ OK ] $ sudo service starling stop * Starting Starling Server... /home/keating/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find starling (>= 0) amongst [minitest-1.6.0, rake-0.8.7, rdoc-2.5.8] (Gem::LoadError) from /home/keating/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec' from /home/keating/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1229:in `gem' from /home/keating/.rvm/gems/ruby-1.9.2-p290/bin/starling:18:in `<main>' 

上面的错误是'找不到宝贝八哥'

在starling文件(位于/etc/init.d,rwxrwxrwx)之后:

 set -e LOGFILE=/var/log/starling/starling.log SPOOLDIR=/var/spool/starling PORT=22122 LISTEN=127.0.0.1 PIDFILE=/var/run/starling.pid NAME=starling DESC="Starling" INSTALL_DIR=/home/keating/.rvm/gems/ruby-1.9.2-p290/bin/ DAEMON=$INSTALL_DIR/$NAME SCRIPTNAME=/etc/init.d/$NAME OPTS="-d" . /lib/lsb/init-functions d_start() { log_begin_msg "Starting Starling Server..." start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $OPTS || log_end_msg 1 log_end_msg 0 } d_stop() { log_begin_msg "Stopping Starling Server..." start-stop-daemon --stop --quiet --pidfile $PIDFILE || log_end_msg 1 log_end_msg 0 } case "$1" in start) d_start ;; stop) d_stop ;; restart|force-reload|reload) d_stop sleep 2 d_start ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" exit 3 ;; esac exit 0 

————————————————– —————

更新:

请参阅sudo ./starling start的解答, 但sudo service starling start失败

检查你的环境variables。

制作init.d脚本的副本并重新打印,以打印“env”的输出而不是启动守护进程。

比较一下当你从shell运行“sudo env”时得到的结果。

很可能,答案是显而易见的,因为“sudo env”输出中的某些必需的variables/值将不会出现在“service starlingenv start”或类似的输出中。

另外,除非没有其他人在您的计算机上login,否则不要离开您的初始化脚本777 – 这是黑客拥有您的简单方法,因为root运行该脚本,任何人都可以更改它。