如何通过脚本在Linux系统上实现jar包的开机自启设置?

更新于
2026-10-09 15:26:06
1阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计695个文字,预计阅读时间需要3分钟。

如何通过脚本在Linux系统上实现jar包的开机自启设置?

1. 创建工作目录及jar文件存放目录: mkdir -p /home/java-server/test-demo

2. 将jar文件上传到指定目录: scp jar-file-name.jar /home/java-server/test-demo

3. 创建启动脚本: cd /home/java-server/test-demo vim start.sh

4. 在start.sh文件中添加以下内容: #!/bin/bash java -jar jar-file-name.jar

1、创建工作目录

创建jar部署的目录,并且将jar上传到该目录下

mkdir -p /home/java-server/test-demo 2、创建启动脚本

进入jar目录:

cd /home/java-server/test-demo

创建脚本文件:

vim start.sh

启动脚本内容:

#!/bin/sh export LANG="en_US.UTF-8" cd /home/java-server/test-demo runMessage=`ps aux | grep \`cat pidfile.txt\`` projectStartCommand="/usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar" if [[ $runMessage == *$projectStartCommand* ]] then echo "Application has starting ,restarting..." kill -9 `cat pidfile.txt` nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txt else echo "Application has stopped ,starting..." nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txt fi

  • 脚本中/home/java-server/test-demo就是jar包所在的,可以根据实际情况定。

  • xxx.jar为实际的jar包名称。

  • /usr/local/java/jdk1.8.0_131/bin/java为jdk环境所在路径。

3、创建停止脚本

进入jar目录:

cd /home/java-server/test-demo

创建脚本文件:

vim stop.sh

停止脚本内容:

#!/bin/sh cd /home/java-server/test-demo PID=$(cat pidfile.txt) if [ ${PID} ]; then echo 'Application is stpping...' echo kill $PID DONE kill $PID else echo 'Application is already stopped...' fi

4、设置开机自启

进入system:

# 进入system cd /usr/lib/systemd/system/

创建自启脚本:

vim xxx.service

xxx.service为脚本的名称,一般来就是jar包前缀名称一致,比如:test-demo.service

内容如下:

[Unit] Description=xxx After=network.target [Service] Type=forking ExecStart=/home/java-server/test-demo/start.sh ExecStop=/home/java-server/test-demo/stop.sh PrivateTmp=true [Install] WantedBy=multi-user.target

  • Description:描述,一般为项目名称

  • ExecStart:开启脚本位置

  • ExecStop:停止脚本位置

设置脚本权限:

# 自启文件 chmod 777 xxx.service # 启动文件 chmod 777 /home/java-server/test-demo/start.sh # 停止文件 chmod 777 /home/java-server/test-demo/stop.sh

加入自启命令 :

systemctl daemon-reload systemctl enable xxx.service

启动|停止命令:

# 启动 systemctl start xxx # 停止 systemctl stop xxx

xxx就是xxx.service的前缀。

如何通过脚本在Linux系统上实现jar包的开机自启设置?

本文共计695个文字,预计阅读时间需要3分钟。

如何通过脚本在Linux系统上实现jar包的开机自启设置?

1. 创建工作目录及jar文件存放目录: mkdir -p /home/java-server/test-demo

2. 将jar文件上传到指定目录: scp jar-file-name.jar /home/java-server/test-demo

3. 创建启动脚本: cd /home/java-server/test-demo vim start.sh

4. 在start.sh文件中添加以下内容: #!/bin/bash java -jar jar-file-name.jar

1、创建工作目录

创建jar部署的目录,并且将jar上传到该目录下

mkdir -p /home/java-server/test-demo 2、创建启动脚本

进入jar目录:

cd /home/java-server/test-demo

创建脚本文件:

vim start.sh

启动脚本内容:

#!/bin/sh export LANG="en_US.UTF-8" cd /home/java-server/test-demo runMessage=`ps aux | grep \`cat pidfile.txt\`` projectStartCommand="/usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar" if [[ $runMessage == *$projectStartCommand* ]] then echo "Application has starting ,restarting..." kill -9 `cat pidfile.txt` nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txt else echo "Application has stopped ,starting..." nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txt fi

  • 脚本中/home/java-server/test-demo就是jar包所在的,可以根据实际情况定。

  • xxx.jar为实际的jar包名称。

  • /usr/local/java/jdk1.8.0_131/bin/java为jdk环境所在路径。

3、创建停止脚本

进入jar目录:

cd /home/java-server/test-demo

创建脚本文件:

vim stop.sh

停止脚本内容:

#!/bin/sh cd /home/java-server/test-demo PID=$(cat pidfile.txt) if [ ${PID} ]; then echo 'Application is stpping...' echo kill $PID DONE kill $PID else echo 'Application is already stopped...' fi

4、设置开机自启

进入system:

# 进入system cd /usr/lib/systemd/system/

创建自启脚本:

vim xxx.service

xxx.service为脚本的名称,一般来就是jar包前缀名称一致,比如:test-demo.service

内容如下:

[Unit] Description=xxx After=network.target [Service] Type=forking ExecStart=/home/java-server/test-demo/start.sh ExecStop=/home/java-server/test-demo/stop.sh PrivateTmp=true [Install] WantedBy=multi-user.target

  • Description:描述,一般为项目名称

  • ExecStart:开启脚本位置

  • ExecStop:停止脚本位置

设置脚本权限:

# 自启文件 chmod 777 xxx.service # 启动文件 chmod 777 /home/java-server/test-demo/start.sh # 停止文件 chmod 777 /home/java-server/test-demo/stop.sh

加入自启命令 :

systemctl daemon-reload systemctl enable xxx.service

启动|停止命令:

# 启动 systemctl start xxx # 停止 systemctl stop xxx

xxx就是xxx.service的前缀。

如何通过脚本在Linux系统上实现jar包的开机自启设置?