jrun.sh 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/usr/bin/env bash
  2. #JAVA_HOME=/opt/jdk1.7.0_07
  3. MAINCLASS="org.eclipse.jetty.start.Main"
  4. LIB_DIR="lib"
  5. CLASS_DIR="start.jar"
  6. JVM_ARGS="-Djetty.port=6220 -Dsolr.solr.home=solr -Dorg.eclipse.jetty.util.URI.charset=UTF-8"
  7. PRO_ARGS=""
  8. PROGRAM_NAME=solr
  9. PID_DIR=/tmp/$PROGRAM_NAME
  10. jcommand="java"
  11. current_dir=$(cd "$(dirname "$0")"; pwd)
  12. runtype="-classpath"
  13. APPEND_LIB=$current_dir"/"$CLASS_DIR
  14. PID_NAME=$PROGRAM_NAME".pid"
  15. pid=$PID_DIR/$PID_NAME
  16. echo "CURRENT_DIR="$current_dir
  17. #注意这个字符,不是',是`,数字键左边的那个键
  18. filelist=`ls $current_dir"/"$LIB_DIR`
  19. for f in $filelist
  20. do
  21. name=$current_dir"/"$LIB_DIR"/"$f
  22. APPEND_LIB=$APPEND_LIB:$name
  23. done
  24. case $1 in
  25. 'start' )
  26. mkdir -p "$PID_DIR"
  27. if [ -f "$pid" ]; then
  28. echo $pid existsed, pid: `cat $pid`
  29. if kill -0 `cat "$pid"` > /dev/null 2>&1; then
  30. echo $PROGRAM_NAME running as process `cat $pid`. Stop it first.
  31. exit 1
  32. fi
  33. fi
  34. echo -n 'Starting : '
  35. if $jcommand $JVM_ARGS $runtype $APPEND_LIB $MAINCLASS $PRO_ARGS > /dev/null 2>&1 &
  36. then
  37. echo $! > "$pid"
  38. echo 'OK'
  39. else
  40. echo 'Failed'
  41. fi
  42. ;;
  43. 'run' )
  44. $jcommand $JVM_ARGS $runtype $APPEND_LIB $MAINCLASS $PRO_ARGS
  45. ;;
  46. 'stop' )
  47. if [ -f "$pid" ]; then
  48. if kill `cat "$pid"` > /dev/null 2>&1; then
  49. echo stopping $PROGRAM_NAME
  50. kill `cat "$pid"`
  51. else
  52. echo No $PROGRAM_NAME to stop
  53. fi
  54. else
  55. echo No $PROGRAM_NAME to stop
  56. fi
  57. ;;
  58. 'list' )
  59. ps aux | egrep '(PID|java|$PROGRAM_NAME)'
  60. ;;
  61. *)
  62. echo 'usage: `basename $0` {start|run|stop|list}'
  63. esac