LINUX.ORG.RU
ФорумAdmin

Запуск webrick через скрипт

 ,


0

1

Всем привет! Не раз поднимал Redmine на Debian, не было никаких проблем. Redmine у меня всегда крутится на Webrick. На данный момент переезжаю с своего VPS на Rapsberry Pi 3B, переношу и Redmine. Установил. Webrick запускается нормально, если выполнить

ruby bin/rails server webrick -e production -b 192.168.87.2 -p 80
Я же всегда, по заранее заготовленному скрипту запускаю Redmine (а точнее, Webrick) через скрипт и запиливаю его в автозапуск. Вот только на Rapsbian, который я поставил на свой Rapsberry, если попытаться запустить Webrick через этот самый скрипт (который я не менял и меня ни разу не подводил), сейчас выдаёт следующее:
root@raspberrypi:/usr/local/share/redmine# /etc/init.d/webrick start

[....] Starting webrick (via systemctl): webrick.serviceFailed to start webrick.service: Unit webrick.service failed to load: No such file or directory.
 failed!

/etc/init.d/webrick существует, права на запуск есть.

Подскажите, чё ему надо?

На всякий случай тело скрипта:

#!/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=/usr/local/share/redmine/

# Start Redmine in daemon mode.
start(){
        log_daemon_msg "Starting Redmine WebRick"
        cd $DIR
        log_progress_msg
        # ruby bin/server -d -e production &> /dev/null
        ruby bin/rails server webrick -d -e production -b 0.0.0.0 -p 80
        log_progress_msg
        log_end_msg 0
}

# Stop Redmine daemon
stop(){
        log_daemon_msg "Stopping Redmine WebRick"
        RUBYPID=`ps aux | grep "ruby bin/rails server webrick -d -e production" | 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 bin/rails server webrick -d -e production" | 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


Последнее исправление: yellowboy (всего исправлений: 3)
Ответ на: комментарий от anc

Согласен. Ясно, но не пойму о чем речь (о каком файле/каталоге). Куда ломится скрипт и чего ему не хватает (при условии, что скрипт не менялся, использовал его не раз, сейчас отличие только в ОС)..? Логи ща поищу.

yellowboy
() автор топика
Ответ на: комментарий от yellowboy

Это предположение. Например ruby ?

anc ★★★★★
()
Ответ на: комментарий от anc

Умышленно не переезжал. Тут вот буду благодарен за подсказку. Делаю всё как обычно: скрипт в /etc/init.d и запускаю через service webrick start. Ранее всегда было так.

yellowboy
() автор топика
Ответ на: комментарий от anc

Произошло странное. Я ничего не менял, но теперь:

root@raspberrypi:~# /etc/init.d/webrick start
[ ok ] Starting webrick (via systemctl): webrick.service.

yellowboy
() автор топика
Ответ на: комментарий от anc

При этом на порту ничего не поднимается/не слушается, соотественно, Redmine не доступен.

yellowboy
() автор топика
Ответ на: комментарий от anc

Останавливается тоже якобы успешно.. Шляпа какая-то. Порт, на котором webrick пытается стартануть, никем не занят.

yellowboy
() автор топика
Ответ на: комментарий от yellowboy

Умышленно не переезжал. Тут вот буду благодарен за подсказку.

Тут уж простите, я на другой стороне силы :) В том смысле, пока не пользую и к сожалению не подскажу. А вот для знатоков, рекомендую написать с какой версии и на какую переехали.

anc ★★★★★
()
Ответ на: комментарий от yellowboy

«Старый добрый метод отладки», комментируем, запускаем и понимаем на что матюгнулось :) (у вас всего 7 строк, если я правильно посчитал :) ), быстро можно найти ошибку :)

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Закомментил по очереди каждую строчку функции start, ничего не менялось, скрипт запускался в статусе ОК, при этом на порту ничего не поднималось (всё как и было). Обратно начал раскомментировать строчки, фейлилось, пока не раскомментил последнюю, запустилось с ОК. На порту ничего не поднимается =(

yellowboy
() автор топика
Ответ на: комментарий от anc

Именно так. Через скрипт пишешт, что ОК, но на порту ничего не поднимается. Ещё раз повторю, что скрипт я не правил, он протестирован не один раз на многих машинах.

yellowboy
() автор топика
Ответ на: комментарий от yellowboy

Сорри, тогда точно не помогу. Нужно ждать знатоков.
ЗЫ Есть конечно обходной вариант, запускать из rc.local

anc ★★★★★
()
Ответ на: комментарий от anc

Кажется нашёл проблему. service webrick status показывает ОК, но дописывает строчки внизу, там есть:

Oct 24 00:01:30 raspberrypi webrick[1543]: Starting Redmine WebRick:/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
Есть идеи? Файл существует, на всякий дал права 777.

yellowboy
() автор топика
Ответ на: комментарий от anc
Oct 24 00:07:47 raspberrypi webrick[1698]: Starting Redmine WebRick:/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
Oct 24 00:07:47 raspberrypi webrick[1698]: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Oct 24 00:07:47 raspberrypi webrick[1698]: from /usr/local/share/redmine/config/boot.rb:4:in `<top (required)>'
Oct 24 00:07:47 raspberrypi webrick[1698]: from bin/rails:3:in `require_relative'
Oct 24 00:07:47 raspberrypi webrick[1698]: from bin/rails:3:in `<main>'
yellowboy
() автор топика
Ответ на: комментарий от yellowboy

Ну опять кроме вариантов отсутствия полных путей, где-то там... или не правильных... в голову сходу ничего не приходит.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.