Ter início de FishEye + Crucible na inicialização no Ubuntu

6

Eu fiz esta pergunta na Atlassian mas imaginei que serverfault poderia ser mais apropriado, já que é mais uma questão de sysadmin que uma questão Atlassiana:

Eu tenho tentado seguir este guia para iniciar o FishEye + Crucible na inicialização. O JIRA já está instalado e rodando como seu próprio usuário (jira) no Ubuntu durante a inicialização, mas não consigo fazer com que o Fisheye + Crucible (também conhecido como fecru) faça o mesmo.

Eu segui as instruções lá (e a nota relacionada ao Ubuntu nos comentários da página) e reiniciei, o JIRA começou por conta própria, como de costume, mas fecru não. Tem alguma coisa a ver com a variável RUN_AS, que eu defini como 'jira'? Esse comando será executado na inicialização sem solicitar uma senha para o usuário 'jira'? Eu percebi que não iria pedir porque o programa JIRA começa na inicialização bem como esse usuário ...

Usando:

Ubuntu 10.04 Lucid

Jira 5.0

Cadinho + Olho de Peixe 2.7.11

    
por xref 13.03.2012 / 21:58

3 respostas

1

Como esta questão apareceu novamente e as respostas estão desatualizadas desde a mudança para systemd pelas principais distribuições, adicionarei minha definição de serviço systemd para o 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

/ etc / 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

Substitua /path/to/jira pelo diretório do seu aplicativo.

Para as outras ferramentas da Atlassian é basicamente o mesmo, apenas os scripts de inicialização e a localização do arquivo PID diferem ligeiramente:

  • Confluência

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

    • $appdir/bin/start.sh
    • $appdir/bin/stop.sh
  • Bambu

    • $appdir/bin/start-bamboo.sh
    • $appdir/bin/stop-bamboo.sh
  • Multidão

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

FishEye ainda não tem suporte para um arquivo PID , por isso atualmente é necessário usar a solução alternativa a partir desse problema e adicione essa linha a fisheyectl.sh após o comando nohop :

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

Para o Bamboo, o arquivo PID precisa ser definido explicitamente por meio da variável CATALINA_PID (consulte $appdir/bin/catalina.sh ). Ainda não testei, mas deve ser possível definir essa variável no arquivo EnvironmentFile .

Após a criação das definições de serviço:

# start JIRA
sudo systemctl start jira
# enable automatic start on boot
sudo systemctl enable jira
    
por 05.09.2017 / 08:30
0

Partes relevantes do script de inicialização que uso:

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

Conteúdo de startf.sh:

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

stopf.sh:

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

Conteúdos relevantes de .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

É claro que eu poderia ter adicionado a instrução .profile de origem nos scripts start e stop fornecidos pela fisheye, mas isso significaria ter que editá-la novamente após uma atualização. Eu tentei manter os arquivos fisheye inalterados o máximo possível.

    
por 13.03.2012 / 22:44
0

Sei que este é um tópico antigo, mas não consegui encontrar uma resposta, então aqui está:

edite fisheyectl.sh e altere nohup sh -c "exec $CMD" >> $FISHEYE_INST/var/log/fisheye.out 2>&1 & para não usar nohup (porque o upstart quer que ele seja executado em primeiro plano:

#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"

A criação do seu arquivo /etc/init/fisheye.conf (eu nomeei o meu cadinho, mas não importa):

# 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

Note que você pode precisar alterar o setuid e o setgid dependendo do usuário em que você o executa. Talvez você também precise alterar as linhas env dos seus caminhos.

    
por 11.07.2016 / 21:21