No Description

example.sh 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/bin/bash
  2. BASE=/home/... # 프로그램 루트경로
  3. LIB=$BASE/lib
  4. PID=$BASE/.pid
  5. PSEXE="/bin/ps"
  6. classpath()
  7. {
  8. JARS=`ls $LIB/*.jar`
  9. for jar in $JARS
  10. do
  11. cp=$cp:$jar
  12. done
  13. }
  14. classpath
  15. export CLASSPATH=.:$CLASSPATH:$cp
  16. checkRunning(){
  17. if [ -f "$PID" ]; then
  18. if [ -z "`cat $PID`" ];then
  19. echo "ERROR: Pidfile '$PID' exists but contains no pid"
  20. return 2
  21. fi
  22. PID=`cat $PID | tail -1`
  23. RET=`$PSEXE -p $PID|grep java`
  24. if [ -n "$RET" ];then
  25. return 0
  26. else
  27. return 1
  28. fi
  29. else
  30. return 1
  31. fi
  32. return 1
  33. }
  34. invoke_start(){
  35. checkRunning
  36. retval=$?
  37. if [ "$retval" -eq 0 ];then
  38. PID=`cat $PID | tail -1`
  39. echo "already running (pid '$PID')"
  40. exit 0
  41. else
  42. exec java com.google.App & # 프로그램 실행 (자바는 java 클래스파일)
  43. PID=`ps -ef | grep App | head -n1 | awk ' {print $2;} '` # grep 다음에 프로그램 이름
  44. echo ${PID} > ${PID}
  45. fi
  46. }
  47. invoke_stop(){
  48. checkRunning
  49. retval=$?
  50. if [ "$retval" -eq 0 ];then
  51. PID=`cat $PID | tail -1`
  52. kill -9 $PID
  53. else
  54. echo "already stop "
  55. fi
  56. }
  57. invoke_status(){
  58. checkRunning
  59. retval=$?
  60. if [ $retval -eq 0 ];then
  61. PID=`cat $PID | tail -1`
  62. echo "Program is running (pid '$PID')"
  63. exit 0
  64. fi
  65. echo "Program not running"
  66. exit 1
  67. }
  68. case "$1" in
  69. 'start')
  70. invoke_start
  71. ;;
  72. 'stop')
  73. invoke_stop
  74. ;;
  75. 'status')
  76. invoke_status
  77. ;;
  78. *)
  79. echo "Usage: $0 { start | stop | status }"
  80. exit 1
  81. ;;
  82. esac
  83. exit 0