Ubuntu: Tomcat upstart script. Logs terminam no log de inicialização

1

Eu tenho um script iniciante simples para o tomcat. Aqui está o modelo do chef:

description "Tomcat Server"

  start on runlevel [2345]
  stop on runlevel [!2345]
  respawn
  respawn limit 10 5

  # run as non privileged user 
  # add user with this command:
  ## adduser --system --ingroup www-data --home /opt/apache-tomcat apache-tomcat
  setuid "<%= node['tomcat']['user'] %>"
  setgid "<%= node['tomcat']['group'] %>"

  # paths:
  env JAVA_HOME="<%= node["java"]["home"] %>"
  env CATALINA_BASE="<%= node["tomcat"]["base"] %>"
  env CATALINA_HOME="<%= node["tomcat"]["home"] %>/current"

  exec $CATALINA_HOME/bin/catalina.sh run

  # cleanup temp directory after stop
  post-stop script 
    rm -rf $CATALINA_HOME/temp/*
  end script

Depois de alternar do script de inicialização para o script upstart postado acima, todos os logs do tomcat são gravados em / var / log / upstart / tomcat. Existe alguma razão pela qual todos os logs entram no log inicial? O que é uma boa maneira de contornar isso? Isso está no Ubuntu 12.04

    
por Joe 04.12.2013 / 14:22

1 resposta

2

O livro de receitas do upstart fornece uma explicação para o que está acontecendo. Resumidamente, "Saída padrão e erro padrão são ... registrados automaticamente em um arquivo no diretório / var / log / upstart /". O comando 'catalina.sh run' envia todas as saídas para stdout. Portanto, o upstart está redirecionando o stdout para o log de inicialização.

Eu usei a seguinte abordagem para o problema:

# Manually specify CATALINA_OUT, so we can redirect ourselves
env CATALINA_OUT=<path to catalina_base>/logs/catalina.out

# Stop upstart from handling stdout/stderr & redirect to the log file ourselves
console none
exec $CATALINA_HOME/bin/catalina.sh run >> "$CATALINA_OUT" 2>&1

Eu tentei executar 'catalina.sh start', que, se você olhar o script catalina, redireciona a saída para CATALINA_OUT em si. Mas, não consegui arranjar corretamente o processo. Nem o 'expect fork' nem o 'expect daemon' foram capazes de gerenciar o processo em segundo plano criado a partir do script de inicialização do catalina.

    
por 14.12.2013 / 06:04