jfinal.sh 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/bin/bash
  2. # ----------------------------------------------------------------------
  3. # name: jfinal.sh
  4. # version: 1.0
  5. # author: yangfuhai
  6. # email: fuhai999@gmail.com
  7. #
  8. # 使用说明:
  9. # 1: 该脚本使用前需要首先修改 MAIN_CLASS 值,使其指向实际的启动类
  10. #
  11. # 2:使用命令行 ./jfinal.sh start | stop | restart 可启动/关闭/重启项目
  12. #
  13. # 3: JAVA_OPTS 可通过 -D 传入 undertow.port 与 undertow.host 这类参数覆盖
  14. # 配置文件中的相同值此外还有 undertow.resourcePath、undertow.ioThreads、
  15. # undertow.workerThreads 共五个参数可通过 -D 进行传入,该功能尽可能减少了
  16. # 修改 undertow 配置文件的必要性
  17. #
  18. # 4: JAVA_OPTS 可传入标准的 java 命令行参数,例如 -Xms256m -Xmx1024m 这类常用参数
  19. #
  20. # 5: 函数 start() 给出了 4 种启动项目的命令行,根据注释中的提示自行选择合适的方式
  21. #
  22. # ----------------------------------------------------------------------
  23. # 启动入口类,该脚本文件用于别的项目时要改这里
  24. MAIN_CLASS=com.jfinal.club.common.JFinalClubConfig
  25. if [[ "$MAIN_CLASS" == "com.yourpackage.YourMainClass" ]]; then
  26. echo "请先修改 MAIN_CLASS 的值为你自己项目启动Class,然后再执行此脚本。"
  27. exit 0
  28. fi
  29. COMMAND="$1"
  30. if [[ "$COMMAND" != "start" ]] && [[ "$COMMAND" != "stop" ]] && [[ "$COMMAND" != "restart" ]]; then
  31. echo "Usage: $0 start | stop | restart"
  32. exit 0
  33. fi
  34. # Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格
  35. # JAVA_OPTS="-Xms256m -Xmx1024m -Dundertow.port=80 -Dundertow.host=0.0.0.0"
  36. # JAVA_OPTS="-Dundertow.port=80 -Dundertow.host=0.0.0.0"
  37. # 生成 class path 值
  38. APP_BASE_PATH=$(cd `dirname $0`; pwd)
  39. CP=${APP_BASE_PATH}/config:${APP_BASE_PATH}/lib/*
  40. function start()
  41. {
  42. # 运行为后台进程,并在控制台输出信息
  43. java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &
  44. # 运行为后台进程,并且不在控制台输出信息
  45. # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >/dev/null 2>&1 &
  46. # 运行为后台进程,并且将信息输出到 output.log 文件
  47. # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log &
  48. # 运行为非后台进程,多用于开发阶段,快捷键 ctrl + c 可停止服务
  49. # java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS}
  50. }
  51. function stop()
  52. {
  53. # 支持集群部署
  54. kill `pgrep -f ${APP_BASE_PATH}` 2>/dev/null
  55. # kill 命令不使用 -9 参数时,会回调 onStop() 方法,确定不需要此回调建议使用 -9 参数
  56. # kill `pgrep -f ${MAIN_CLASS}` 2>/dev/null
  57. # 以下代码与上述代码等价
  58. # kill $(pgrep -f ${MAIN_CLASS}) 2>/dev/null
  59. }
  60. if [[ "$COMMAND" == "start" ]]; then
  61. start
  62. elif [[ "$COMMAND" == "stop" ]]; then
  63. stop
  64. else
  65. stop
  66. start
  67. fi