diff --git a/README.md b/README.md index 36a97d7e1a5222a0f837fb4c54cd38ff99dc068b..ade675a184c38fa5d3cb953d050a4970970c2eec 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ UndertowServer.start(AppConfig.class); ``` ### 5、部署在项目根目录下添加项目运行脚本文件 -本项目中的根目录下面提供了 start.sh、stop.sh、restart.sh、start.bat 这四个脚本文件下载。其中前三个用于 linux、mac 系统,后一个用于 windows 系统,注意要修改一下这些脚本文件中的 MAIN_CLASS 变量指向你自己的项目入口,例如: +本项目中的根目录下面提供了 undertow.sh、start.bat 这四个脚本文件下载。其中 undertow.sh 用于 linux、mac 系统,后一个用于 windows 系统,注意要修改一下这些脚本文件中的 MAIN_CLASS 变量指向你自己的项目入口,例如: ``` MAIN_CLASS=com.yourpackage.YourMainClass ``` @@ -162,7 +162,7 @@ mvn clean package ``` ### 7、部署 - 进入项目的 target/your-project-release 目录,运行 start.sh 即可启动项目。target 目录下还会打包出一个 your-project-release.zip 该文件是上述第五步中生成的目录的一个 zip 压缩文件,上传该文件到服务器解压即部署,可以通过修改 package.xml 改变生成的文件名或者取消生成该文件 + 进入项目的 target/your-project-release 目录,运行 ./undertow.sh start 即可启动项目。target 目录下还会打包出一个 your-project-release.zip 该文件是上述第五步中生成的目录的一个 zip 压缩文件,上传该文件到服务器解压即部署,可以通过修改 package.xml 改变生成的文件名或者取消生成该文件 ## 三、jfinal-undertow 优势: 1:极速启动,启动速度比 tomcat 快 5 到 8 倍。jfinal.com 官网启动时间在 1.5 秒内 diff --git a/restart.sh b/restart.sh deleted file mode 100644 index 0c6127a56d05595d77cd2712d798c30e69cb8684..0000000000000000000000000000000000000000 --- a/restart.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# --------------------------------------------------------------------------- -# -# 使用说明: -# -# 1: 本脚本仅仅通过调用 stop.sh 与 start.sh 实现重启 -# -# 2:要特别注意 stop.sh 脚本中有关 MAIN_CLASS 配置的注意事项, -# 只有先确保 stop.sh 可以正常工作时才能使用该脚本 -# -# --------------------------------------------------------------------------- - -# 得到基础路径 -APP_BASE_PATH=$(cd `dirname $0`; pwd) - -${APP_BASE_PATH}/stop.sh && ${APP_BASE_PATH}/start.sh - diff --git a/start.sh b/start.sh deleted file mode 100644 index ffb9349a183a91e0c2b0ec1312550ab669f7421d..0000000000000000000000000000000000000000 --- a/start.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# --------------------------------------------------------------------------- -# -# 使用说明: -# -# 1: 该脚本用于别的项目时只需要修改 MAIN_CLASS 即可运行 -# -# 2: JAVA_OPTS 可通过 -D 传入 undertow.port 与 undertow.host 这类参数覆盖 -# 配置文件中的相同值此外还有 undertow.resourcePath、undertow.ioThreads、 -# undertow.workerThreads 共五个参数可通过 -D 进行传入,该功能尽可能减少了 -# 修改 undertow 配置文件的必要性 -# -# 3: JAVA_OPTS 可传入标准的 java 命令行参数,例如 -Xms256m -Xmx1024m 这类常用参数 -# -# 4: 脚本最后一部分给出了 4 种启动项目的命令行,根据注释中的提示自行选择合适的方式 -# -# --------------------------------------------------------------------------- - -# 启动入口类,该脚本文件用于别的项目时要改这里 -MAIN_CLASS=com.yourpackage.YourMainClass - -# Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格 -# JAVA_OPTS="-Xms256m -Xmx1024m -Dundertow.port=80 -Dundertow.host=0.0.0.0" -# JAVA_OPTS="-Dundertow.port=80 -Dundertow.host=0.0.0.0" - -# 生成 class path 值 -APP_BASE_PATH=$(cd `dirname $0`; pwd) -CP=${APP_BASE_PATH}/config:${APP_BASE_PATH}/lib/* - -# 运行为后台进程,并在控制台输出信息 -java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} & - -# 运行为后台进程,并且不在控制台输出信息 -# nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >/dev/null 2>&1 & - -# 运行为后台进程,并且将信息输出到 output.log 文件 -# nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log & - -# 运行为非后台进程,多用于开发阶段,快捷键 ctrl + c 可停止服务 -# java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} - - - - - - - diff --git a/stop.sh b/stop.sh deleted file mode 100755 index 3ffade17fdb1652f9688abc305f9f0bf8c7308aa..0000000000000000000000000000000000000000 --- a/stop.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -# --------------------------------------------------------------------------- -# -# 使用说明: -# -# 1: MAIN_CLASS 必须要与配对的 start.sh 文件中的 MAIN_CLASS 完全相同 -# -# 2: 该脚本用于别的项目时只需要修改 MAIN_CLASS 即可使用 -# -# 3: 注意:如果有其它项目的 MAIN_CLASS 与本项目一样则不能使用本脚本关闭服务 -# 同理同一个项目使用了不同端口启动的,也会拥有相同的 MAIN_CLASS 值 -# 也不能使用本脚本关闭服务,这种情况使用下面的命令先查 pid 值: -# ps aux | grep java -# -# 确认好 pid 以后,使用 kill pid 关闭服务 -# -# 注意 kill 命令不要带 -9 这个参数,否则 jfinal 中的一些与服务关闭 -# 有关的回调方法将不会被回调,例如 JFinalConfig.onStop() -# -# 4: 如果不需要上述的 onStop() 回调,使用 kill -9 可加快关闭服务的速度 -# -# --------------------------------------------------------------------------- - -# 启动入口类,该脚本文件用于别的项目时要改这里 -MAIN_CLASS=com.yourpackage.YourMainClass - -# kill 命令不使用 -9 参数时,会回调 onStop() 方法,确定不需要此回调建议使用 -9 参数 -kill `pgrep -f ${MAIN_CLASS}` 2>/dev/null - -# 以下代码与上述代码等价 -# kill $(pgrep -f ${MAIN_CLASS}) 2>/dev/null - diff --git a/undertow.sh b/undertow.sh new file mode 100755 index 0000000000000000000000000000000000000000..7fdc1b4c8f797e7cc0c5e6b8a54c4a3ab8eacc01 --- /dev/null +++ b/undertow.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# ---------------------------------------------------------------------- +# name: undertow.sh +# version: 1.0 +# author: yangfuhai +# email: fuhai999@gmail.com +# use : ./undertow.sh {start, stop, restart} +# ---------------------------------------------------------------------- + +# 启动入口类,该脚本文件用于别的项目时要改这里 +MAIN_CLASS=com.yourpackage.YourMainClass1 + +if [[ "$MAIN_CLASS" == "com.yourpackage.YourMainClass" ]]; then + echo "请先修改 MAIN_CLASS 的值为你自己项目启动Class,然后再执行此脚本。" + exit 0 +fi + +COMMAND="$1" + +if [[ "$COMMAND" != "start" ]] && [[ "$COMMAND" != "stop" ]] && [[ "$COMMAND" != "restart" ]]; then + echo "$0 {start, stop, restart}" + exit 0 +fi + + +# Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格 +# JAVA_OPTS="-Xms256m -Xmx1024m -Dundertow.port=80 -Dundertow.host=0.0.0.0" +# JAVA_OPTS="-Dundertow.port=80 -Dundertow.host=0.0.0.0" + +# 生成 class path 值 +APP_BASE_PATH=$(cd `dirname $0`; pwd) +CP=${APP_BASE_PATH}/config:${APP_BASE_PATH}/lib/* + +function start() +{ + # 运行为后台进程,并在控制台输出信息 + java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} & + + # 运行为后台进程,并且不在控制台输出信息 + # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >/dev/null 2>&1 & + + # 运行为后台进程,并且将信息输出到 output.log 文件 + # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log & + + # 运行为非后台进程,多用于开发阶段,快捷键 ctrl + c 可停止服务 + # java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} +} + +function stop() +{ + kill `pgrep -f ${MAIN_CLASS}` 2>/dev/null + + # 以下代码与上述代码等价 + # kill $(pgrep -f ${MAIN_CLASS}) 2>/dev/null + +} + +if [[ "$COMMAND" == "start" ]]; then + start +elif [[ "$COMMAND" == "stop" ]]; then + stop +else + stop + start +fi