要编写一个Shell脚本来部署JAR包并支持重启,需要考虑以下几点:
- 杀死当前运行的服务实例(如果有的话)。
- 启动新的服务实例。
- 处理日志文件,确保它们不会无限增长。
- 确保JAR包的最新版本被使用。
以下是一个简单的部署脚本示例
#!/bin/bash
# JAR包的名称
JAR_NAME="your-application.jar"
# JAR包所在的目录
JAR_DIR="/path/to/jar/directory"
# 日志文件名称
LOG_FILE="application.log"
# PID文件名称,用于存储运行中的Java进程ID
PID_FILE="application.pid"
# 进入JAR包所在的目录
cd $JAR_DIR
# 杀死当前运行的服务实例
if [ -f $PID_FILE ]; then
PID=$(cat $PID_FILE)
echo "Killing running instance: $PID"
kill $PID
rm $PID_FILE
fi
# 启动新的服务实例,并将PID写入文件
echo "Starting new instance..."
nohup java -jar $JAR_NAME > $LOG_FILE 2>&1 &
echo $! > $PID_FILE
echo "Deployment complete."
要使用这个脚本,请按照以下步骤操作:
- 将脚本内容保存到一个文件中,例如
deploy.sh
。 - 使用
chmod +x deploy.sh
命令使脚本可执行。 - 根据需要修改
JAR_NAME
、JAR_DIR
、LOG_FILE
和PID_FILE
变量的值。 - 运行
./deploy.sh
脚本来部署JAR包。
这个脚本会杀死任何正在运行的实例(通过PID文件),启动新的实例,并将新实例的PID写入PID文件。这样,你就可以使用这个脚本来部署和重启你的JAR包服务了。
请注意,这个脚本假设你的JAR包不需要额外的Java启动参数。如果你的应用程序需要其他参数,你需要在java -jar
命令中添加这些参数。此外,如果你的应用程序需要特定的环境变量,你可以在脚本中设置它们。