Использование appassembler в качестве скрипта-демона для запуска apache-camel route не удается во время перезагрузки

У меня есть Apache Camel Route, который использовал appassembler для запуска маршрута в качестве службы Linux(Redhat). Я создал символическую ссылку на оболочку службы в виде /etc/init.d/daemon-science. Когда я пытаюсь запустить символическую ссылку как службу, она работает нормально, но при перезагрузке она не указывает на нужную папку.

Wrapper.log показывает ошибку: FATAL | обертка | 2015/06/25 14:02:37 | Невозможно определить полный путь к файлу конфигурации, /etc/etc/wrapper.conf: нет такого файла или каталога

Мой pom.xml имеет запись

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <version>1.8.1</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>generate-daemons</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <daemons>
            <daemon>
              <id>daemon-science</id>
              <mainClass>org.apache.camel.spring.Main</mainClass>

            <generatorConfigurations>
                <generatorConfiguration>
                  <generator>jsw</generator>
                  <includes>
                    <include>linux-x86-32</include>
                    <include>linux-x86-64</include>
                    <include>windows-x86-64</include>
                  </includes>
                </generatorConfiguration>
              </generatorConfigurations>

              <platforms>
                <platform>jsw</platform>
              </platforms>
            </daemon>
          </daemons>
        </configuration>
   </plugin>
   <plugin>  
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
            <execution>
                <id>echodir</id>
            <goals>
                <goal>run</goal>
            </goals>
            <phase>verify</phase>
            <inherited>true</inherited>
            <configuration>
                <target>
           <mkdir dir="${project.build.directory}/generated-resources/appassembler/jsw/daemon-science/logs"/>
           <chmod file="${project.build.directory}/generated-resources/appassembler/jsw/daemon-science/bin/daemon-science" perm="755"/>
           <chmod file="${project.build.directory}/generated-resources/appassembler/jsw/daemon-science/bin/wrapper-linux-x86-64" perm="755"/>
                </target>
            </configuration>
           </execution>
        </executions>
   </plugin>  

Каким-то образом часть BASEDIR оболочки службы получает другой путь при перезагрузке:

# discover BASEDIR
BASEDIR=`dirname "$0"`/..
BASEDIR=`(cd "$BASEDIR"; pwd)`
ls -l "$0" | grep -e '->' > /dev/null 2>&1
if [ $? = 0 ]; then
  #this is softlink
  _PWD=`pwd`
  _EXEDIR=`dirname "$0"`
  cd "$_EXEDIR"
  _BASENAME=`basename "$0"`
  _REALFILE=`ls -l "$_BASENAME" | sed 's/.*->\ //g'`
   BASEDIR=`dirname "$_REALFILE"`/..
   BASEDIR=`(cd "$BASEDIR"; pwd)`
   cd "$_PWD"
fi
# Wrapper
WRAPPER_CMD="./wrapper"
WRAPPER_CONF="$BASEDIR/etc/wrapper.conf"

Я могу вручную изменить значение BASEDIR, но когда я перекомпилирую, мне нужно снова вручную изменить BASEDIR.

Должно быть BASEDIR ="${project.build.directory}/generate-resources/appassembler/jsw/daemon-science"

Есть ли способ исправить ошибку?

Заранее спасибо.

0 ответов

Другие вопросы по тегам