【发布时间】:2017-09-06 06:10:49
【问题描述】:
我正在尝试在重新启动 Debian 7.9 后配置 Redmine 的自动启动,但是我做不到。通常我用两个命令启动 Redmine:
- cd /opt/redmine/current
- ruby 脚本/rails server webrick -e production -d
为了自动启动,我创建了 LSBInitScript (/etc/init.d/redmine)。 https://wiki.debian.org/LSBInitScripts
脚本的全部内容:
#!/bin/bash
### BEGIN INIT INFO
# Provides: redmine
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: redmine webrick
# Description: redmine webrick server autostart-script
### END INIT INFO
. /lib/lsb/init-functions
# Modify it to your configuration
DIR=/opt/redmine/current
# Start Redmine in daemon mode.
start(){
log_daemon_msg "Starting Redmine WebRick"
cd $DIR
log_progress_msg
ruby script/rails server webrick -e production -d > redmine-start.log 2>&1
log_progress_msg
log_end_msg 0
}
# Stop Redmine daemon
stop(){
log_daemon_msg "Stopping Redmine WebRick"
RUBYPID=`ps aux | grep "ruby script/rails server webrick -e production -d" | grep -v grep | awk '{print $2}'`
log_progress_msg
if [ "x$RUBYPID" != "x" ]; then
kill -2 $RUBYPID
fi
log_end_msg 0
}
# Check if Redmine is running
status(){
RUBYPID=`ps aux | grep "ruby script/rails server webrick -e production -d" | grep -v grep | awk '{print $2}'`
if [ "x$RUBYPID" = "x" ]; then
echo "* Redmine is not running"
else
echo "* Redmine is running"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart|force-reload)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload|status}"
exit 1
esac
我将文件 /etc/init.d/redmine 设为可执行文件,并通过
将其添加到启动序列中update-rc.d redmine 默认值
重启操作系统后会执行redmine脚本,如redmine-start.log文件所示,但是该文件报错。
完整的输出如下所示:
/var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/spec_set.rb:92:in `block in materialize ': Could not find json-1.8.3 in any of the sources ( Bundler :: GemNotFound)
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in `map! '
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in `materialize '
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/definition.rb:140:in `specs'
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/definition.rb:185:in `specs_for '
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/definition.rb:174:in `requested_specs'
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/environment.rb:18:in `requested_specs'
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/runtime.rb:13:in `setup '
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler.rb:127:in `setup '
from /var/lib/gems/1.9.1/gems/bundler-1.10.6/lib/bundler/setup.rb:18:in `<top (required)> '
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require '
据我判断,此错误表示找不到文件 json-1.8.3,而且问题似乎是没有安装某些东西。但是,如果我尝试手动启动 redmine,即
/etc/init.d/redmine start
这样的开始将毫无错误地发生。下一个自然的假设是错误是在系统启动后启动脚本的顺序。但是这个假设并没有给出任何东西,因为这条线应该确保Redmine尽可能晚地推出。
必需的开始:$all
我也手动尝试获取一些加载顺序,但这不起作用。 如果不是 /etc/init.d 我将脚本添加到 /etc/rc.local 并且如果不是 update- rc.d 我使用 insserv。
指南,其他人的脚本给出了同样的错误,在这种情况下我在谷歌中找不到提及。
我该如何解决这个问题?
【问题讨论】:
标签: ruby-on-rails linux redmine system-administration