使用Ubuntu upstart运行java服务

时间:2012-10-17 09:45:02

标签: java classpath upstart

我无法使用具有以下要求的upstart定义有效的upstart conf脚本来运行java服务:

  • 我必须使用文件夹指定classpath,因为我在多个文件夹中有很多jar
  • 我必须听取service myservicename stop
  • 发出的关机信号

基于that answer,我实现了一个关闭钩子监听器,所以我需要upstart向我发送终止信号并等待我的应用程序终止。

这是我的错误新贵脚本:

description "masa"
author "Muhammad Gelbana <m.glba@gmail.com>"

start on runlevel [2345]
stop on shutdown
kill timeout 120

script
    LOGS_DIR=/home/mgelbana/services/RealServices/logs
    IPK_DB=/home/mgelbana/services/RealServices/config/db-ipk.properties
    PRO_DB=/home/mgelbana/services/RealServices/config/db-reporting-engine.properties
    MAIN_CLASS=com.sger.masaTA
    mkdir -p $LOGS_DIR
    CLASSPATH="/home/mgelbana/services/RealServices/masa-RealService-TA.jar"
    for i in /home/mgelbana/services/commons/*.jar; do
    CLASSPATH="$CLASSPATH:$i"
    done
    for i in /home/mgelbana/services/RealServices/lib/*.jar; do
    CLASSPATH="$CLASSPATH:$i"
    done
    echo '\n\n\n====================================================='
    echo 'Service startup:\t'`date`
    echo 'Main class:\t\t'`echo $MAIN_CLASS`
    echo 'Logs directory:\t\t'`echo $LOGS_DIR`
    echo 'masa database configuration:\t'`echo $IPK_DB`
    echo 'Pro configuration file:\t'`echo $PRO_DB`
    echo 'Starting engine...'
    java -Dta.id=2 -DIPK_DB=$IPK_DB -DPRO_DB=$PRO_DB -cp $CLASSPATH $MAIN_CLASS
end script

/var/log/upstart/myservicename.log日志中显示以下错误: /proc/self/fd/9: 9: /proc/self/fd/9: Syntax error: word unexpected (expecting "do")

谢谢。

0 个答案:

没有答案