Назад | Перейти на главную страницу

Запускаем FishEye + Crucible при загрузке в Ubuntu

Я задал этот вопрос в Atlassian но предполагаемый сбой сервера может быть более подходящим, поскольку это скорее вопрос системного администратора, чем вопрос Atlassian:

Я пытался следовать это руководство чтобы FishEye + Crucible запускалась при загрузке. JIRA уже установлена ​​и работает как собственный пользователь (jira) в Ubuntu при загрузке, но я не могу заставить Fisheye + Crucible (aka fecru) сделать то же самое.

Я выполнил инструкции (и примечание, относящееся к Ubuntu в комментариях к странице) и перезагрузился, JIRA запустилась самостоятельно, как обычно, а fecru - нет. Это как-то связано с переменной RUN_AS, для которой я установил jira? Будет ли эта команда запускаться при загрузке без запроса пароля для пользователя jira? Я подумал, что это не будет подсказывать, потому что программа JIRA запускается при загрузке нормально от этого пользователя ...

С помощью:

Ubuntu 10.04 Lucid

Jira 5.0

Crucible + Fisheye 2.7.11

Поскольку этот вопрос возник снова и ответы теперь устарели после перехода на systemd в основных дистрибутивах, я добавлю свое определение службы systemd для JIRA:

/etc/systemd/system/jira.service

[Unit]
Description=Atlassian JIRA
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/jira
ExecStart=/path/to/jira/bin/startup.sh
ExecStop=/path/to/jira/bin/shutdown.sh
PIDFile=/path/to/jira/work/catalina.pid
SuccessExitStatus=143
User=jira
Group=jira
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

/ и т.д. / sysconfig / jira

# Name of the user to run as
USER=jira
# Location of application's bin directory
CATALINA_HOME=/path/to/jira
# Location of Java JDK
export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Заменить /path/to/jira с каталогом вашего приложения.

Для других инструментов Atlassian это в основном то же самое, только сценарии запуска и расположение файла PID немного отличаются:

  • Слияние

    • $appdir/bin/startup.sh
    • $appdir/bin/shutdown.sh
    • $appdir/work/catalina.pid
  • FishEye

    • $appdir/bin/start.sh
    • $appdir/bin/stop.sh
  • Бамбук

    • $appdir/bin/start-bamboo.sh
    • $appdir/bin/stop-bamboo.sh
  • Толпа

    • $appdir/bin/startup.sh
    • $appdir/bin/shutdown.sh
    • $appdir/apache-tomcat/work/catalina.pid

FishEye еще не поддерживает файл PID, поэтому в настоящее время необходимо использовать обходной путь от этой проблемы и добавить эту строку в fisheyectl.sh после nohop команда:

echo $! > $FISHEYE_INST/var/fisheye.pid

Для Bamboo файл PID должен быть явно определен через CATALINA_PID переменная (см. $appdir/bin/catalina.sh). Я еще не тестировал, но должна быть возможность установить эту переменную в EnvironmentFile файл.

После создания определений сервисов:

# start JIRA
sudo systemctl start jira
# enable automatic start on boot
sudo systemctl enable jira

Я понимаю, что это старый поток, но я не смог найти ответа, поэтому вот он:

отредактируйте fisheyectl.sh и измените nohup sh -c "exec $CMD" >> $FISHEYE_INST/var/log/fisheye.out 2>&1 & чтобы не использовать nohup (потому что выскочка хочет, чтобы он работал на переднем плане:

#echo "Starting FishEye/Crucible... Output redirected to $FISHEYE_INST/var/log/fisheye.out"
#nohup sh -c "exec $CMD" >> $FISHEYE_INST/var/log/fisheye.out 2>&1 &
sh -c "exec $CMD"

Создайте свой файл /etc/init/fisheye.conf (я назвал свой тигель, но это не имеет значения):

# Crucible Upstart
#
# Required-Start:
# Required-Stop:

description "Crucible Server"

start on runlevel [2345]
stop on runlevel [!2345]

setuid crucible
setgid crucible
env FISHEYE_HOME="/home/crucible/crucible"
env FISHEYE_INST="/home/crucible/crucible-datastore"

# Give up if restart occurs 10 times in 30 seconds.
respawn limit 10 30

# keep it running in foreground to let upstart manage it
exec ~crucible/crucible/bin/start.sh
respawn

Обратите внимание: вам может потребоваться изменить setuid и setgid в зависимости от пользователя, от имени которого вы его запускаете. Вам также может потребоваться изменить env линии для ваших путей.

Соответствующие фрагменты сценария инициализации, который я использую:

case "$1" in
    start)
        sudo -u fisheye /path/to/fisheye/startf.sh

    stop)
        sudo -u fisheye /path/to/fisheye/stopf.sh
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac

Содержимое startf.sh:

source /home/fisheye/.profile
$FISHEYE_HOME/bin/start.sh

stopf.sh:

source /home/fisheye/.profile
$FISHEYE_HOME/bin/stop.sh

Соответствующее содержимое .profile:

export JAVA_HOME=/path/to/java/
export FISHEYE_OPTS="-Xms512m -Xmx4800m -XX:MaxPermSize=512m"
export FISHEYE_HOME=/home/fisheye/fecru-x.x.x
export FISHEYE_INST=/home/fisheye/inst-example

Конечно, я мог бы добавить исходный оператор .profile в предоставленные «рыбий глаз» сценарии запуска и остановки, но это означало бы, что после обновления его придется редактировать снова. Я старался сохранить файлы «рыбий глаз» без изменений, насколько это возможно.