2017-09-06 161 views
1

我试图在重新启动Debian 7.9后配置Redmine的自动启动,但是,我无法做到这一点。通常我开始与管理平台两个命令:Redmine在Debian 7.9重新启动后自动启动

  1. CD /选择/管理平台/电流
  2. 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中找到这些错误。

我该如何解决这个问题?

回答

1

手动运行脚本/etc/init.d不是一个好主意。该脚本将与您的 shell从继承的环境一起运行。所以你的环境中的某些东西很有可能使它工作。

要使用其/etc/init.d脚本启动服务,请使用service,例如:service redmine start。如果这真的是一个环境问题,这可能也会失败。

+0

你说得对。我声明了一些环境变量(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' –