jojo's blog--快樂憂傷都與你同在
          為夢想而來,為自由而生。 性情若水,風起水興,風息水止,故時而激蕩,時又清平……
          posts - 11,  comments - 30,  trackbacks - 0

          I’ve been working with Glassfish recently, from the system administration point of view.  First task, after getting a good build with Maven (doing it with basic rpm methods netted me a massive dependency list, including things like Firefox!), was to write an init script so that Glassfish can be integrated into the CentOS boot sequence.

          Because we might have multiple domains set up inside of Glassfish, I opted for a setup similar to the Tomcat5 init script - check the basename of $0, and use that to determine which domain to boot up.  The fiddling in start() gets around the fact that Glassfish doesn’t seem to write a PID file out where we need one.

          So, just in case anyone else needs to do this:

          #!/bin/bash
          # chkconfig: 2345 85 15
          # description: GlassFish is a Java Application Server.
          # processname: glassfish
          # pidfile: /var/run/glassfish.pid

          # source function library
          . /etc/init.d/functions

          RETVAL=0

          GLASSFISH_BIN="/var/lib/glassfish/bin"

          # Basename works with symbolic links.
          NAME="$(basename $0)"
          unset ISBOOT

          # Trim off the Sxx/Kxx prefix
          if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
          NAME="${NAME:3}"
          ISBOOT="1"
          fi

          # Trim off the glassfish- prefix
          NAME=${NAME:10}

          # /etc/init.d/glassfish should never be called directly.
          if [ -z $NAME ]; then
          echo -n $"Cannot start Glassfish without specifying a domain."
          failure
          echo
          exit 1
          fi

          start() {

          echo -n $"Starting Glassfish V2 domain $NAME: "
          daemon --user glassfish --pidfile /var/run/glassfish-$NAME.pid "$GLASSFISH_BIN/asadmin start-domain $NAME >/dev/null 2>&1"
          RETVAL=$?

          if [ $RETVAL -eq 0 ]; then
          PID=`ps U glassfish | grep $NAME | awk '{ print $1}'`
          echo $PID > /var/run/glassfish-$NAME.pid
          touch /var/lock/subsys/glassfish-$NAME
          fi

          echo
          }


          stop() {

          echo -n $"Shutting down Glassfish V2 domain $NAME: "

          $GLASSFISH_BIN/asadmin stop-domain $NAME >/dev/null 2>&1

          RETVAL=$?

          [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/glassfish-$NAME && rm -f /var/run/glassfish-$NAME && success || failure

          echo

          }

          case "$1" in

          start)

          start

          ;;

          stop)

          stop
          ;;

          restart|reload)

          stop

          start

          ;;

          condrestart)

          if [ -f /var/lock/subsys/glassfish-$NAME ]; then

          stop

          start
          fi
          ;;

          status)
          status glassfish-$NAME

          RETVAL=$?
          ;;

          *)

          echo $"Usage: $0 {start|stop|restart|condrestart|status}"

          exit 1

          esac

          exit $RETVAL

          The alternative is to define a /etc/sysconfig/glassfish file, and insert a variable with the list of domains to boot, in sequence.  This is a little harder to manage automatically in Puppet, but might be a better solution if precise boot sequences are required (this method will boot in sequence based on the S numbers in the base script, and then the alphabetical ordering of the names).

          posted on 2009-06-10 14:38 Blog of JoJo 閱讀(294) 評論(0)  編輯  收藏 所屬分類: 每日一記My Script

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武乡县| 汽车| 永修县| 白城市| 尼勒克县| 瓮安县| 电白县| 冀州市| 柘荣县| 米易县| 永济市| 含山县| 阳信县| 溆浦县| 久治县| 布尔津县| 南昌县| 新密市| 绥中县| 高碑店市| 大宁县| 高雄县| 阜新| 松潘县| 保山市| 枞阳县| 萝北县| 紫阳县| 元阳县| 清丰县| 时尚| 醴陵市| 霍林郭勒市| 红安县| 镇沅| 浦东新区| 宁强县| 漾濞| 广水市| 丘北县| 中西区|