snail-job.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/sh
  2. # ./snail-job.sh start|空 启动 stop 停止 restart 重启 status 状态
  3. AppName=snail-job-server-exec.jar
  4. # JVM参数
  5. JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC"
  6. APP_HOME=`pwd`
  7. # 检查传入的操作名参数,如果为空则默认设置为 "start"
  8. if [ "$1" = "" ]; then
  9. echo -e "\033[0;34m 未输入操作名,默认操作为: start \033[0m"
  10. ACTION="start"
  11. else
  12. ACTION=$1
  13. fi
  14. if [ "$AppName" = "" ]; then
  15. echo -e "\033[0;31m 未输入应用名 \033[0m"
  16. exit 1
  17. fi
  18. function start() {
  19. PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
  20. if [ x"$PID" != x"" ]; then
  21. echo "$AppName is running..."
  22. else
  23. nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 &
  24. echo "Start $AppName success..."
  25. fi
  26. }
  27. function stop() {
  28. echo "Stop $AppName"
  29. PID=""
  30. query(){
  31. PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
  32. }
  33. query
  34. if [ x"$PID" != x"" ]; then
  35. kill -TERM $PID
  36. echo "$AppName (pid:$PID) exiting..."
  37. while [ x"$PID" != x"" ]
  38. do
  39. sleep 1
  40. query
  41. done
  42. echo "$AppName exited."
  43. else
  44. echo "$AppName already stopped."
  45. fi
  46. }
  47. function restart() {
  48. stop
  49. sleep 2
  50. start
  51. }
  52. function status() {
  53. PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
  54. if [ $PID != 0 ];then
  55. echo "$AppName is running..."
  56. else
  57. echo "$AppName is not running..."
  58. fi
  59. }
  60. case $ACTION in
  61. start)
  62. start;;
  63. stop)
  64. stop;;
  65. restart)
  66. restart;;
  67. status)
  68. status;;
  69. *)
  70. echo -e "\033[0;31m 无效的操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m";;
  71. esac