Пусть 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

Тигель + Рыбий глаз 2.7.11

3 ответа

Поскольку этот вопрос снова всплыл и ответы теперь устарели после перехода на 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

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

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 в предоставленные fisheye сценарии запуска и остановки, но это означало бы необходимость его повторного редактирования после обновления. Я пытался сохранить файлы "рыбий глаз" без изменений в максимально возможной степени.

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

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

#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 линии для ваших путей.

Другие вопросы по тегам