Ubuntu: скрипт Tomcat upstart. Логи попадают в журнал upstart

Ubuntu: скрипт Tomcat upstart. Логи попадают в журнал upstart

У меня есть простой скрипт upstart для tomcat. Вот шаблон 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

После переключения со скрипта init на скрипт upstart, указанный выше, все логи tomcat записываются в /var/log/upstart/tomcat. Есть ли какая-то причина, по которой все логи попадают в журнал upstart? Как это обойти? Это на ubuntu 12.04

решение1

Theкулинарная книга upstartдает объяснение происходящему. Короче говоря, "Стандартный вывод и стандартная ошибка ... автоматически регистрируются в файле в каталоге /var/log/upstart/". Команда 'catalina.sh run' отправляет весь вывод на stdout. Таким образом, upstart перенаправляет stdout в журнал upstart.

Я подошёл к проблеме следующим образом:

# 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

Я попытался выполнить 'catalina.sh start', который, если посмотреть на скрипт catalina, перенаправляет вывод в сам CATALINA_OUT. Но мне не удалось заставить upstart правильно управлять процессом. Ни 'expect fork', ни 'expect daemon' не смогли управлять фоновым процессом, созданным из скрипта запуска catalina.

Связанный контент