2013-11-22 4 views
3

Я пытаюсь создать службу для tomcat на Ubuntu 12.10, используя выскочку.Источник файла в файле upstart conf

Итак, я создал файл tomcat.conf в/и т.д./INIT

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 
# Ubuntu 12.04: (use 'exec sudo -u apache-tomcat' when using 10.04) 
setuid tomcat 
setgid tomcat 

pre-start script 
    . /etc/default/tomcat 
end script 

exec $CATALINA_HOME/bin/catalina.sh run 

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

/и т.д./файл по умолчанию/ENV содержит кот переменные, которые мне нужно установить перед запуском службы.

Однако поиск источника не влияет. Когда я запускаю командную строку формы файла/etc/default/tomcat, она отлично работает. Но когда я включаю его в скрипт, он не имеет никакого эффекта.

Что может быть неправильным?

ответ

1

Возможно, вам придется экспортировать каждую из переменных окружения по частям. Что-то вроде этого:

script 
    . /etc/default/tomcat 
    export CATALINA_HOME 
    exec $CATALINA_HOME/bin/catalina.sh run 
end script 

должно привести к тому, что CATALINA_HOME будет доступен для файла catalina.sh.

1

Вложенные скрипты в upstart (например, pre-start) наследуют среду, указанную в прилагаемом файле, но любые изменения, сделанные внутри вложенного скрипта, не будут влиять на envrion окружения.

Источник: http://upstart.ubuntu.com/cookbook/#environment-variables (см длинного примера в конце этого раздела)