Browse Source

Linux shell jrun.sh fix

zhzhenqin 12 years ago
parent
commit
fdf7586eaf
1 changed files with 36 additions and 20 deletions
  1. 36 20
      javarun/jrun.sh

+ 36 - 20
javarun/jrun.sh

@@ -1,17 +1,20 @@
 #!/usr/bin/env bash
 
 #JAVA_HOME=/opt/jdk1.7.0_07
-MAINCLASS="com.sdyc.clstest.t.HelloWorld"
+MAINCLASS="org.eclipse.jetty.start.Main"
 LIB_DIR="lib"
-CLASS_DIR="classes"
+CLASS_DIR="start.jar"
+JVM_ARGS="-Djetty.port=6220 -Dsolr.solr.home=solr -Dorg.eclipse.jetty.util.URI.charset=UTF-8"
 PRO_ARGS=""
-JVM_ARGS="-Xmx128m"
-
+PROGRAM_NAME=solr
 
+PID_DIR=/tmp/$PROGRAM_NAME
 jcommand="java"
 current_dir=$(cd "$(dirname "$0")"; pwd)
 runtype="-classpath"
 APPEND_LIB=$current_dir"/"$CLASS_DIR
+PID_NAME=$PROGRAM_NAME".pid"
+pid=$PID_DIR/$PID_NAME
 
 echo "CURRENT_DIR="$current_dir
 
@@ -25,33 +28,46 @@ for f in $filelist
 
 case $1 in
     'start' )
-        echo -n 'Starting NDETL in Domean Thread: '
-        if nohup $jcommand $JVM_ARGS $runtype $APPEND_LIB $MAINCLASS $PRO_ARGS &
-        then
-            echo 'OK...'
-        else
-            echo 'Failed...'
+        mkdir -p "$PID_DIR"
+
+        if [ -f "$pid" ]; then
+            echo $pid existsed, pid: `cat $pid`
+            if kill -0 `cat "$pid"` > /dev/null 2>&1; then
+                echo $PROGRAM_NAME running as process `cat $pid`.  Stop it first.
+                exit 1
+            fi
         fi
-        ;;
 
-	'daemon' )
-        echo -n 'Starting NDETL in Domean Thread: '
-        if $jcommand $JVM_ARGS $runtype $APPEND_LIB $MAINCLASS $PRO_ARGS > /dev/null &
+        echo -n 'Starting : '
+        if $jcommand $JVM_ARGS $runtype $APPEND_LIB $MAINCLASS $PRO_ARGS > /dev/null 2>&1 &
         then
-            echo 'OK...'
+            echo $! > "$pid"
+            echo 'OK'
         else
-            echo 'Failed...'
+            echo 'Failed'
         fi
         ;;
-		
+
     'run' )
         $jcommand $JVM_ARGS $runtype $APPEND_LIB $MAINCLASS $PRO_ARGS
         ;;
 
-    'list' )
-        ps aux | egrep '(PID|java)'
+    'stop' )
+        if [ -f "$pid" ]; then
+          if kill `cat  "$pid"` > /dev/null 2>&1; then
+            echo stopping $PROGRAM_NAME
+            kill `cat "$pid"`
+          else
+            echo No $PROGRAM_NAME to stop
+          fi
+        else
+          echo No $PROGRAM_NAME to stop
+        fi
         ;;
 
+    'list' )
+        ps aux | egrep '(PID|java|$PROGRAM_NAME)'
+        ;;
      *)
-echo 'usage: `basename $0` {start|daemon|run|list}'
+echo 'usage: `basename $0` {start|run|stop|list}'
 esac