如何通过脚本在Linux系统上实现jar包的开机自启设置?
- 内容介绍
- 文章标签
- 相关推荐
本文共计695个文字,预计阅读时间需要3分钟。
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环境所在路径。
进入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的前缀。
本文共计695个文字,预计阅读时间需要3分钟。
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环境所在路径。
进入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的前缀。

