ToB企服应用市场:ToB评测及商务社交产业平台

标题: 使用shell脚本在Linux中管理Java应用程序 [打印本页]

作者: 九天猎人    时间: 2024-6-14 19:33
标题: 使用shell脚本在Linux中管理Java应用程序
目录

前言

在日常开发和运维工作中,管理基于Java的应用程序是一项基础且频繁的任务。本文将通过一个示例脚本,展示如何使用Shell脚本简化这一流程,实现Java应用的一键式启动、制止与重启操作。本脚本不仅提升了工作效率,还确保了操作的标准化与可靠性。
一、目录结构

这是一个范例的Java项目部署结构,其中user_defined目任命于存放管理应用的各种脚本,其下细分有多个子目录以组织不同的资源。
  1. .
  2. ├─user_defined     # 使用者自定义目录名      
  3. │  ├─bin           # 脚本存放目录
  4. │  ├─conf          # 配置文件目录
  5. │  ├─lib           # 应用依赖的jar包存放目录
  6. │  ├─log           # 应用日志输出目录
  7. │  ├─pid           # 存放进程ID文件的目录
  8. │  └─sql           # SQL脚本或数据相关文件
复制代码
二、脚本实现

1. 脚本内容
  1. #!/bin/bash
  2. # 检查脚本是否被传递了有效的命令
  3. if [ -z "$1" ]; then
  4.   echo "Usage: $0 {start|stop|restart}"
  5.   exit 1
  6. fi
  7. # jar包名称,不带.jar后缀
  8. JAR_NAME='example'
  9. # 获取当前脚本所在的目录
  10. SCRIPT_BIN="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  11. # jar包主目录
  12. JARPACKAGE_HOME="$SCRIPT_BIN/.."
  13. # 设置jar包的路径
  14. JAR_PATH="$JARPACKAGE_HOME/lib/$JAR_NAME.jar"
  15. # 检查当前目录下是否存此jar文件
  16. if [ ! -f "$JAR_PATH" ]; then
  17.   echo "Error: $JAR_NAME.jar not found."
  18.   exit 1
  19. fi
  20. # 定义运行的Java命令
  21. JAVA_CMD="java -jar $JAR_PATH"
  22. # 创建pid目录,如果不存在
  23. PID_DIR="$JARPACKAGE_HOME/pid"
  24. mkdir -p "$PID_DIR"
  25. # 启动jar包
  26. start() {
  27.   echo "Starting jar package..."
  28.   # nohup $JAVA_CMD > /dev/null 2>&1 &
  29.   # 使用nohup在后台运行jar包,并将日志输出到文件
  30.   nohup $JAVA_CMD > $JARPACKAGE_HOME/log/${JAR_NAME}.log 2>&1 &
  31.   echo $! > "$PID_DIR/$JAR_NAME.pid"
  32.   echo "Jar package is started. pid is saved in $PID_DIR/$JAR_NAME.pid"
  33. }
  34. # 停止jar包
  35. stop() {
  36.   echo "Stopping jar package..."
  37.   PID=$(cat "$PID_DIR/$JAR_NAME.pid")
  38.   if [ -n "$PID" ]; then
  39.     kill $PID
  40.     echo "Jar package has been stopped"
  41.     yes | rm "$PID_DIR/$JAR_NAME.pid"
  42.   else
  43.     echo "Error: Jar package is not running."
  44.   fi
  45. }
  46. # 重启jar package
  47. restart() {
  48.   echo "Restarting jar package..."
  49.   stop
  50.   sleep 3
  51.   start
  52. }
  53. # 根据传入的参数调用相应的方法
  54. case "$1" in
  55.   start)
  56.     start
  57.     ;;
  58.   stop)
  59.     stop
  60.     ;;
  61.   restart)
  62.     restart
  63.     ;;
  64.   *)
  65.     echo "Error: Invalid command. Use {start|stop|restart}."
  66.     exit 1
  67.     ;;
  68. esac
  69. exit 0
复制代码
2. 使用阐明

2.1 配置脚本

2.2 脚本部署

2.3 操作你的Java应用

总结

通过上述Shell脚本,我们不仅实现了Java应用的便捷管理,还保证了操作的自动化与标准化,大大减轻了运维负担。无论是日常开发调试还是生产情况的部署维护,如许的脚本都是提升效率的利器。
盼望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4