jrun.sh 1.8 KB

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