1. 部署
1.1. 打包生成jar
创建项目 website,最后打包出website.jar
创建Controller
Maven àpackage 后如果报下面错误
jar中没有主清单属性
解决方法如下:
第一步 file–>project structure 弹框后选中Atifacts—> + ---->jar---->from module with dependenceis
第二步选择一个Main Class,然后指定META-INF/MANIFEST.MF的路径为src下
修改pom.xml 注释掉true
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.example.website2.Website2Application</mainClass>
<!-- <skip>true</skip>-->
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
1.2. 安装java
[root@localhost ~]# java –version
-bash: java: command not found
把 \课前资料\software\部署\jdk-8u271-linux-x64.tar.gz拷贝到usr/local/src文件夹中 。
cd /usr/local/src
tar -zxvf jdk-8u271-linux-x64.tar.gz
打印/etc/profile文件,在文件末尾加入下面 几行。
#java environment
export JAVA_HOME=/usr/local/src/jdk1.8.0_271
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
让环境变量生效
source /etc/profile
java –version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
1.3. nohup &的使用
1.3.1. 直接启动
java -jar website.jar --server.port=9000
启动后能访问http://192.168.64.140:9000,ctrl c就不能访问
1.3.2. 使用&
java -jar website.jar --server.port=9000&
启动后能访问,ctrl c后还能访问
ps -ef | grep 9000
关闭终端后不能访问
1.3.3. 使用nohup
cd /usr/local/src
nohup java -jar website.jar --server.port=9000&
ctrl c后还能访问,关闭终端后能访问
Nohup =no hang up
& ctrl c 还在后台运行
1.3.4. 测试服务是否可用
### 1.3.5. 杀进程
1.4. 使用sh执行
“"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。(#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径)如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell.
#!/bin/sh
nohup java -jar website.jar --server.port=9000 &
1.5. 做成服务
1.5.1. 服务介绍
服务是开机自动启动。
Windows中的服务
Linux中的tomcat,数据库,redis,消息队列,docker都要做成开机自启动。
1.5.2. 停止进程
1.5.3. 启动服务脚本
/usr/local/src/website-start-service.sh
#!/bin/sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_271
export PATH=$JAVA_HOME/bin:$PATH
nohup java -jar /usr/local/src/website.jar --server.port=9000 &
echo $! > /usr/local/src//website.pid
1.5.4. 停止服务脚本
/usr/local/src/website-stop-service.sh
#!/bin/sh
PID=$(cat /usr/local/src/website.pid)
kill -9 $PID
1.5.5. 设置权限
chmod -R 777 /usr/local/src
chmod -R 777 /usr/local/src/website-start-service.sh
chmod -R 777 /usr/local/src/website-stop-service.sh
1.5.6. 创建.service文件
编写注册服务 website.service 放到目录 /usr/lib/systemd/system
[Unit]
Description=website
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/src/website-start-service.sh
ExecStop=/usr/local/src/website-stop-service.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
1.5.7. 服务做成开机自动
systemctl start website #启动 website 服务
systemctl stop website #停止 website 服务
systemctl list-unit-files #查看当前服务(是否开机启动等)状态
systemctl list-unit-files | grep website
systemctl status website #查看 website 服务当前的运行状态
systemctl enable website #开机启动 website 服务
systemctl status website
systemctl disable website #取消开机启动 website 服务