Redmine在Debian 7.9重新启动后自动启动
我试图在重新启动Debian 7.9后配置Redmine的自动启动,但是,我无法做到这一点。通常我开始与管理平台两个命令:Redmine在Debian 7.9重新启动后自动启动
- CD /选择/管理平台/电流
- Ruby脚本/导轨的WEBrick -e生产-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可执行文件,添加它通过
更新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无法发现,它似乎,问题是,有些东西没有安装。但是,如果我尝试手动启动该管理平台,即
/etc/init.d/redmine开始
那开始会发生没有错误。下一个自然的假设是,系统启动后,错误按照启动脚本的顺序进行。但是这个假设并没有给出任何答案,因为这条线应该确保Redmine的推出尽可能晚。
所需的启动:$所有
我也试过手动拿起装载的一些订单,但没有奏效。 我收到了类似的负面结果,如果不是/etc/init.d中我添加脚本/etc/rc.local中如果不是更新的rc.d我用insserv时。
指南,其他人的脚本给出了同样的错误,在这种情况下我无法在Google中找到这些错误。
我该如何解决这个问题?
手动运行脚本/etc/init.d
不是一个好主意。该脚本将与您的 shell从继承的环境一起运行。所以你的环境中的某些东西很有可能使它工作。
要使用其/etc/init.d
脚本启动服务,请使用service
,例如:service redmine start
。如果这真的是一个环境问题,这可能也会失败。
你说得对。我声明了一些环境变量(export var1 = ..等等),并且能够让Redmine运行通过 ** service redmine start ** 但是,当我重新启动操作系统时,会发生错误,但另一个。 /usr/local/rvm/gems/ruby-2.1.5/gems/rmagick-2.13.4/lib/RMagick2.so:[BUG]分割错误 ruby 1.9.3p194 - Ruby级别的回溯信息 - -------------------------------------- script/rails:6:in'' 脚本/导轨:6:在'require' –