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