1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #!/bin/bash
# 使用which命令获取java的路径 JAVA_PATH=$(which java)
# 检查是否成功获取到了java的路径 if [ -z "$JAVA_PATH" ]; then echo "错误:未找到java可执行文件。" exit 1 fi
# 提取JAVA_HOME路径 JAVA_HOME=$(dirname "$JAVA_PATH")/.. if [ ! -d "$JAVA_HOME" ]; then echo "错误:无法从java路径确定JAVA_HOME。" exit 1 fi
# 提示用户输入jar包的路径 echo "请输入jar包的完整路径:" read JARFILE
# 检查是否输入了jar包路径 if [ -z "$JARFILE" ]; then echo "错误:未输入jar包路径。" exit 1 fi
# 检查jar文件是否存在 if [ ! -f "$JARFILE" ]; then echo "错误:指定的jar文件不存在。" exit 1 fi
# 提示用户输入执行的用户 echo "请输入用于运行应用程序的用户:" read RUN_AS_USER
# 检查是否输入了用户 if [ -z "$RUN_AS_USER" ]; then echo "错误:未输入执行的用户。" exit 1 fi
# 检查用户是否存在 if ! id "$RUN_AS_USER" &>/dev/null; then echo "错误:用户 '$RUN_AS_USER' 不存在。" exit 1 fi
# 设置其他环境变量 MODE=service JAVA_OPTS="-Xms512m -Xmx1024m"
# 使用指定的用户启动JAR文件,并将其放到后台执行 sudo -u "$RUN_AS_USER" nohup "$JAVA_HOME/bin/java" $JAVA_OPTS -jar "$JARFILE" > /dev/null 2>&1 &
|