[前端学java03-SpringBoot实战] lombok,日志,部署

导航

[react] Hooks

[React 从零实践01-后台] 代码分割
[React 从零实践02-后台] 权限控制
[React 从零实践03-后台] 自定义hooks
[React 从零实践04-后台] docker-compose 部署react+egg+nginx+mysql
[React 从零实践05-后台] Gitlab-CI使用Docker自动化部署

[源码-webpack01-前置知识] AST抽象语法树
[源码-webpack02-前置知识] Tapable
[源码-webpack03] 手写webpack - compiler简单编译流程
[源码] Redux React-Redux01
[源码] axios
[源码] vuex
[源码-vue01] data响应式 和 初始化渲染
[源码-vue02] computed 响应式 - 初始化,访问,更新过程
[源码-vue03] watch 侦听属性 - 初始化和更新
[源码-vue04] Vue.set 和 vm.$set
[源码-vue05] Vue.extend

[源码-vue06] Vue.nextTick 和 vm.$nextTick
[部署01] Nginx
[部署02] Docker 部署vue项目
[部署03] gitlab-CI

[数据结构和算法01] 二分查找和排序

[深入01] 执行上下文
[深入02] 原型链
[深入03] 继承
[深入04] 事件循环
[深入05] 柯里化 偏函数 函数记忆
[深入06] 隐式转换 和 运算符
[深入07] 浏览器缓存机制(http缓存机制)
[深入08] 前端安全
[深入09] 深浅拷贝
[深入10] Debounce Throttle
[深入11] 前端路由
[深入12] 前端模块化
[深入13] 观察者模式 发布订阅模式 双向数据绑定
[深入14] canvas
[深入15] webSocket
[深入16] webpack
[深入17] http 和 https
[深入18] CSS-interview
[深入19] 手写Promise
[深入20] 手写函数
[深入21] 数据结构和算法 - 二分查找和排序
[深入22] js和v8垃圾回收机制
[深入23] JS设计模式 - 代理,策略,单例

[前端学java01-SpringBoot实战] 环境配置和HelloWorld服务
[前端学java02-SpringBoot实战] mybatis + mysql 实现歌曲增删改查
[前端学java03-SpringBoot实战] lombok,日志,部署

(一) 前置知识

(1) 一些单词

terminate 停止,结束
permanent 永久的
alter 修改
identify 识别
release 发布 发行 释放
temporary 短暂的,暂时的
stable 稳定的 养马场 // stable repository 稳定的存仓库仓库
firewall 防火墙
netstat 网络状态

(2) linux 一些常用命令

一 防火墙的开启、关闭、禁用命令
(1) 设置开机启用防火墙:systemctl enable firewalld.service
(2) 设置开机禁用防火墙:systemctl disable firewalld.service
(3) 启动防火墙:systemctl start firewalld
(4) 关闭防火墙:systemctl stop firewalld
(5) 检查防火墙状态:systemctl status firewalld 


二 设置nginx相关同上
(1) 设置开机启用nginx:systemctl enable nginx
(2) 设置开机禁用nginx:systemctl disable nginx
(3) 启动nginx:systemctl start nginx
(4) 开机启动docker一样:systemctl enable docker
...


三 查看服务是否启动
(1) ps -ef --------------------- 可以看到 PID PPID CMD等信息,即可以根据PID关闭相关进程,比如java
(2) ps -ef | grep mysql
(3) ps -ef | grep java


四 查看服务器端口被占用情况
(1) netstat -tlpn 查看服务器端口被占用情况
     -t或--tcp:显示TCP传输协议的连线状况
     -l或--listening:显示监控中的服务器的Socket
     -p或--programs:显示正在使用Socket的程序识别码和程序名称
     -n或--numeric:直接使用ip地址,而不通过域名服务器
     
  
五 生成树形路径的插件
(1) 安装 yum install -y tree
(2) 使用 tree -a

(3) 新购买云服务器后,具体的一些环境和工具配置和 ( java项目部署 ) 的具体流程 ( CentOS )

  • 当前工作路径 pwd
  • 更新包 yum update
  • 安装GIT yum install -y git
  • 安装Maven yum install -y maven
  • 具体过程如下 ( 整个服务器的配置过程,包括后端和前端项目 )
(1) 连接服务器
- 工具方式:比如 FinalShell
- cmd方式: ssh -p 端口号 用户名@服务器ip地址
- 比如:ssh -p 22 root@120.53.xxx.xx 然后会让输入密码,输入登陆即可
- 问题:为什么可以在cmd中可以直接输入ssh命令?
- 原因:windows中集成了OpenSSH客户端
- 如何查看是否有OpenSSH客户端:设置 => 应用 => 管理可选功能 => 看是否有OpenSSH客户端,没有就点击 => 添加功能
- 区分:登陆mysql 和 登陆服务器
  - mysql: mysql -u root -p 然后输入密码
  - 服务器:ssh -p 端口号 用户名@ip地址
- 相关教程:https://www.bilibili.com/read/cv1420735/


(2) pwd
- 登陆后,可通过 pwd 命令查看当前工作路径


(3) yum update 
- 更新所有可以更新的包


(4) git 相关
- 1.下载安装git
  - yum install -y git
  - -y 的作用是下载过程中可能会有对话让你选择yes还是no, -y就会自动的选择yes
- 2.查看git版本号
  - git version
- 3.设置 ( user.name ) ( user.email )
  - git config --global user.name "your name"
  - git config --global user.email "your emial"
  - 设置成功后,通过 git config --global --list 来查看global相关信息
- 5.设置 ( ssh-key ), 并把设置成功后的 ( .ssh ) 文件夹中的公钥 ( id_rsa.pub ) 添加到github账号中
  - ssh-keygen -t rsa -C "your emai"
  - 公钥id_rsa.pub文件的路径:/root/.ssh/id_rsa.pub
  - 通过 ( cat id_rsa.pub ) 查看公钥的内容,并拷贝到 github => setting => SSH and GPG keys => new SSH key 中
- 6.通过git clone git@github.com:woow-wu7/7-react-admin-java.git 克隆我们的java项目到服务器
- 7.通过上面的123456步,已经把项目拉取到服务器中了



(5) maven 相关
- 1.下载安装maven
  - yum install -y maven
- 2.查看maven是否安装成功
  - mvn -version
- 3.使用maven命令清理编译打包java项目
  - mvn clean compile package  先删除target再编译再打包
  - mvn clean 清理target目录
  - mvn compile 编译,会编译到target目录下
  - mvn package 打包
  - 注意:
    - 工作目录是在maven项目的根目录,可以通过pwd查看当前的工作目录
    - 除了上面这样,也可以在本地打成jar包后,将整个 ( target ) 文件夹上传到服务器
- 4.通过上面123已经完成了对maven相关的设置



(6) mysql 相关
- 1.下载mysql的yum的repo源
  - 官网底部 => MySQL Community Server => MySQL Yum Repository => mysql80-community-release-el7-3.noarch.rpm
  - `问题:这么多版本,我到底选择哪个版本呢?`
  - `回答:要看自己的centos系统是什么版本,通过命令 cat /etc/redhat-release 可以看到centos版本`
  - `比如:我的centos版本是 CentOS Linux release 7.9.2009 (Core) `
  - `问题:什么是 .repo 文件?`
  - `回答:repo文件是yum仓库的配置文件`
  - `问题:在centos中 .repo 文件在哪里?`
  - `回答:/root/etc/yum.repos.d/ 中`
- 2.安装 mysql80-community-release-el8-1.noarch.rpm 包
  - sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm
  - 该命令需要在 mysql80-community-release-el8-1.noarch.rpm 所在的文件夹下执行
  - 安装后在 `/root/etc/yum.repos.d/ `中会多两个repo包
    - `mysql-community.repo`
    - `mysql-community-source.repo`
- 3.安装mysql
  - sudo yum install mysql-server
  - 查看:`systemctl list-unit-files|grep mysqld`
  - 设置成开机启动:**`systemctl enable mysqld.service`**
- 5.是否启动服务
  - 查看:`ps -ef|grep mysql` 
    - 对比
    - 查看java的后台进程:`ps -ef | grep java`
  - 启动服务:**`systemctl start mysqld.service`**
- 6.初始化mysql
  - `mysqld --initialize`
- 7.查看MySQL初始默认密码
  - **`grep 'temporary password' /var/log/mysqld.log`**
  - 注意:需要启动mysql服务后才能查看到
  - 注意:grep命令的作用是 查找文件里符合条件的字符串
- 8.修改mysql密码
  - 需要先登陆mysql 
  - `mysql -u root -p 然后输入密码进入mysql`
  - `alter user 'root'@'localhost' identified by '12345678';` 修改密码为12345678
- 9.开启Mysql远程连接 ------- 重要不然无法通过navicat远程连接,会报1130错误!!!
  - 登陆mysql后,输入以下命令
  - `use mysql;`
  - `update user set host = '%' where user = 'root';` 修改root账户权限
  - `flush privileges;` 刷新权限
- 10. 查看mysql的版本
  - 先登陆musql,然后输入 select version();
- 11.经过12345678910步完成了mysql的安装,具体下面有详细步骤和图文



(7) docker 相关
- 1.如果安装过Docker,先卸载 docker 或者 docker-engine 以及相关的依赖
  $ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
- 2.安装Docker需要的相关插件
  - yum-utils
  - device-mapper-persistent-data
  - lvm2
  $ sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2
- 3.设置稳定的存储库 - 仓库
  - 官方镜像 
  $ sudo yum-config-manager \
      --add-repo \
      https://download.docker.com/linux/centos/docker-ce.repo
  - 阿里云仓库:如果安装太慢,用阿里云镜像
  $ sudo yum-config-manager \
      --add-repo \
      http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 4.启用存储库(可选)
  $ sudo yum-config-manager --enable docker-ce-nightly
- 5.安装最新版本的Docker Engine-Community和containerd
  $ sudo yum install -y docker-ce docker-ce-cli  containerd.io
- 6.启动 - 安装完成后
  $ sudo systemctl start docker
- 7.验证 hello-world
  $ sudo docker run hello-world
- 8.镜像加速
  - 阿里云镜像加速
    - 阿里云登陆
    - 容器镜像服务 => 镜像加速器 => 操作文档 => centos 复制代码在服务器中输入红框部分代码即可
    - 问题:如何验证镜像源已经修改成功?
    - 回答:执行该命令cat /etc/docker/daemon.json 验证registry-mirrors的值
- 9.docker中使用nginx容器等,见下面 【 (7) docker 中安装 nginx 】
- 10.记一个知识点:
    - docker exec -it 容器ID|容器名 /bin/bash 
    - exec 可以进入正启动着的容器中


(8) nginx
- 1.安装epel
  - `sudo yum install -y epel-release`
- 2.安装nginx
  - `sudo yum install -y nginx`
- 3.卸载nginx
  - `sudo yum remove -y nginx`
- 4.把nginx设置成开机启动
  - `sudo systemctl enable nginx`
- 5.启动nginx
  - `sudo systemctl start nginx`
- 6.停止nginx
  - `sudo systemctl stop  nginx`
- 7.重新加载nginx
  - `sudo systemctl reload nginx`
- 8.重启nginx
  - `sudo systemctl restart nginx`
- 9.检查nginx的运行状态
  - `sudo systemctl status nginx`
- 10.如何设置了防火墙,需要开启80和443端口,分别对应http和https的默认端口
  - `sudo firewall-cmd --permanent --zone=public --add-service=http`
  - `sudo firewall-cmd --permanent --zone=public --add-service=https`
  - `sudo firewall-cmd --reload`
  - firewall 是防火墙的意思
  - permanent 是永久的意思
- 11.查看nginx的版本
  - `nginx -v`
- 12.查看服务器端口被占用情况
  - **`netstat -tlnp`**
- 13.**修改nginx的默认端口**
  - `whereis nginx.conf` 查看nginx.conf文件所在的路径 
  - nginx.conf所在的正确路径是:**`/root/etc/nginx/nginx.conf`**
  - 我们把nginx的默认端口修改成 **79**
  - 修改过后需要重启
    server {
        listen       79 default_server;
        listen       [::]:79 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        ...
     }  



(9) 在服务器中启动服务,运行jar包 ( 在服务器中运行java项目 )
- java -jar -Dspring.profiles.active=production target/7-react-admin-java-0.0.1-SNAPSHOT.jar
  • 新版windows的cmd中可以直接输入 ssh -p 端口号 用户名@服务器ip地址 是因为集成了OpenSSH
  • 下图是查看或者添加OpenSSH


    image
  • yum update


    image
  • id_rsa.pub 是sshkey的公钥


    image
  • gibhub中添加ssh key


    image
  • mvn -version


    image


(4) CentOS7 服务器安装 Mysql8

上面3中其实有Centos安装Mysql的详细步骤,这里单独拆出来记录理解

  • 1.下载mysql的yum的repo源
    • 官网底部 => MySQL Community Server => MySQL Yum Repository => mysql80-community-release-el7-3.noarch.rpm
    • mysql-yum包下载连接
    • 问题:这么多版本,我到底选择哪个版本呢?
    • 回答:要看自己的centos系统是什么版本,通过命令 cat /root/etc/redhat-release 可以看到centos版本
    • 比如:我的centos版本是 CentOS Linux release 7.9.2009 (Core)
    • 问题:什么是 .repo 文件?
    • 回答:repo文件是yum仓库的配置文件
    • 问题:在centos中 .repo 文件在哪里?
    • 回答:/root/etc/yum.repos.d/ 中
  • 2.安装 mysql80-community-release-el8-1.noarch.rpm 包
    • sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm
    • 该命令需要在 mysql80-community-release-el8-1.noarch.rpm 所在的文件夹下执行
    • 安装后在 /root/etc/yum.repos.d/中会多两个repo包
      • mysql-community.repo
      • mysql-community-source.repo
  • 3.安装mysql
    • sudo yum install mysql-server
  • 4.是否开机启动mysql
    • 查看:systemctl list-unit-files|grep mysqld
    • 设置成开机启动:systemctl enable mysqld.service
  • 5.是否启动服务
    • 查看:ps -ef|grep mysql
    • 启动服务:systemctl start mysqld.service
  • 6.初始化mysql
    • mysqld --initialize
  • 7.查看MySQL初始默认密码
    • grep 'temporary password' /var/log/mysqld.log
    • 注意:需要启动mysql服务后才能查看到
    • 注意:grep命令的作用是 查找文件里符合条件的字符串
  • 8.修改mysql密码
    • 需要先登陆mysql
    • mysql -u root -p 然后输入密码进入mysql
    • alter user 'root'@'localhost' identified by '12345678'; 修改密码为12345678
  • 9.开启Mysql远程连接 ------- 重要不然无法通过navicat远程连接,会报1130错误!!!
    • 登陆mysql后,输入以下命令
    • use mysql;
    • update user set host = '%' where user = 'root'; 修改root账户权限
    • flush privileges; 刷新权限
  • 10.查看mysql的版本
    • 先登陆musql,然后输入 select version();
  • 11.mysql相关的安装教程
  • mysql对应的社区版yum仓库如下图
    image

    image

    image
  • 登陆mysql


    image
  • navicat 连接远程服务器centos中的mysql


    image


(5) CentOS 安装 docker



(6) CentOS 安装 nginx

  • 1.安装epel
    • sudo yum install -y epel-release
  • 2.安装nginx
    • sudo yum install -y nginx
  • 3.卸载nginx
    • sudo yum remove -y nginx
  • 4.把nginx设置成开机启动
    • sudo systemctl enable nginx
  • 5.启动nginx
    • sudo systemctl start nginx
  • 6.停止nginx
    • sudo systemctl stop nginx
  • 7.重新加载nginx
    • sudo systemctl reload nginx
  • 8.重启nginx
    • sudo systemctl restart nginx
  • 9.检查nginx的运行状态
    • sudo systemctl status nginx
  • 10.如何设置了防火墙,需要开启80和443端口,分别对应http和https的默认端口
    • sudo firewall-cmd --permanent --zone=public --add-service=http
    • sudo firewall-cmd --permanent --zone=public --add-service=https
    • sudo firewall-cmd --reload
    • firewall 是防火墙的意思
    • permanent 是永久的意思
  • 11.查看nginx的版本
    • nginx -v
  • 12.查看服务器端口被占用情况
    • netstat -tlnp
  • 13.修改nginx的默认端口
    • whereis nginx.conf 查看nginx.conf文件所在的路径
    • nginx.conf所在的正确路径是:/root/etc/nginx/nginx.conf
    • 我们把nginx的默认端口修改成 79
    • 修改过后需要重启
    server {
        listen       79 default_server;
        listen       [::]:79 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        ...
     }  


(7) docker 中安装 nginx

  • 拉取镜像
    • docker pull nginx
  • 查看镜像
    • docker images -a
  • 查看容器
    • docker ps -a
  • 删除某个镜像
    • docker rmi -f 镜像ID|镜像名称
  • 删除所有镜像
    • docker rmi -f $(docker images -qa)
  • 删除某个容器
    • docker rm -f 容器ID|容器名称
  • 删除所有容器
    • docker rm -f $(docker ps -qa)
  • 进入容器
    • docker exec -it 容器ID|容器名 /bin/bash
    • docker exec 的特点是可以进入启动着的容器中
  • 容器日志
    • docker logs 容器ID|容器名称
  • 递归创建文件夹
    • mkdir -p a/b/c
  • 创建文件
    • touch index.html
  • 生成树形文件树形图
  • 注意点注意点注意点注意点注意点注意点注意点注意点注意点注意点注意点注意点注意点
    • nginx 容器要映射4个文件,分别在容器中的路径为
    • /etc/nginx/conf.d/default.conf
    • /usr/share/nginx/html
    • /etc/nginx/nginx.conf
    • /var/log/nginx
docker安装nginx具体过程


(1) 拉取镜像
docker pull nginx


(2) 新建文件夹
cd ~/work-frontend
mkdir -p nginx/conf.d
cd ..
mkdir html.d
/root
    |---work-frontend
           |----nginx
                  |----nginx.conf
                  |----conf.d
                        |----default.conf
                  |----html.d
                        |----index.html
                  |----log
                        |----access.log 
                        |----error.log               
在 conf.d 文件夹中创建 default.conf 文件,里面是nginx的配置
在 html.d 文件夹中创建 index.html 文件,里面是显示的ui内容
+++++++++++++++++++++ default.conf 内容如下 +++++++++++++++++++++ 
server {
    # 注意:这里一定只能是80,后面端口的修改可以通过docker容器的端口映射来修改,注意注意!!!
    # 注意:这里设置了反向代理后,前端就不需要再设置axios的baseURL了,设置为空字符串 baseURL:''
    listen 80;
    listen  [::]:80;
    server_name  localhost;
    location / {
      root   /usr/share/nginx/html;
      index  index.html index.htm;
      try_files $uri $uri/  /index.html; # 根据路径匹配文件
    }
    location /api {
      rewrite  ^/api/(.*)$ /$1 break;  # 去掉api前綴
      proxy_pass http://120.53.220.141:7777;
    }
}
+++++++++++++++++++++ index.html 内容如下 +++++++++++++++++++++ 
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <p>this is index.htmk</p>
  <p>server by nginx</p>
</body>
</html>
+++++++++++++++++++++ nginx.conf 内容如下 +++++++++++++++++++++ 
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}



(3) 新建并执行容器 ( 最好映射4个文件 )
sudo docker run -d --name=nginx_81 -p 81:80 \
-v ~/work-frontend/nginx/conf.d/default.conf/:/etc/nginx/conf.d/default.conf \
-v ~/work-frontend/nginx/html.d:/usr/share/nginx/html \
-v ~/work-frontend/nginx/log.d:/var/log/nginx \
-v ~/work-frontend/nginx/nginx.conf:/etc/nginx/nginx.conf \
f6d0b4767a6c

// docker run -it --name=nginx-8080 -p 8080:80 镜像ID ----------------- 根据镜像创建执行容器
// 注意这里腾讯云可以访问不到,因为nginx默认端口是80不要写成别的端口了
// 关闭容器:docker stop 容器ID | 容器名称
// 注意:不要加上 /bin/bash 不然启动后nginx映射的端口不能访问

nginx ( 容器 ) 内的一些文件位置:-------------------------- 注意是容器中的nginx,而不是真实的nginx项目路径
- 日志位置:/var/log/nginx/
- 配置文件位置:/etc/nginx/
- 项目位置:/usr/share/nginx/html



(4) 反向代理
location /api {
    rewrite  ^/api/(.*)$ /$1 break;  # 去掉api前綴 
    proxy_pass http://120.53.220.141:7777;
}

(二) LomBok

  • 1.在 pom.xml 中添加 dependency
    • Lombokscope=provided说明它只在编译阶段生效,不需要打入包中
<!-- lombok -->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.16</version>
  <scope>provided</scope>
</dependency>
  • 2.在 bean ( dto 或者 model ) 等类中使用
// @Data是lombok的注解
// @Data会自动生成 @Getter @Setter @ToString @EqualsAndHashCode @RequiredArgsConstructor
@Data
public class PaginationDTO {
    public List<MusicModel> musics;
    public Integer total;
    public Integer current;
    public Integer pageSize;
}
  • 3.idea中都会自动支持lombok


    image

(三) 日志功能

  • SpringBoot-logging官方文档
  • 1.默认情况下日志只会在控制台中输入,如果你想写入文件,需要在application.properties中设置
    • logging.file.name
      • 日志文件的文件名
    • logging.file.path
      • 日志文件的路径,可以新建一个log文件夹,比如logging.file.path=logs
    • logging.level.root = info
    • logging.level.com.example.demo.mapper = debug
      • logging.level.com.example.demo.mapper = debug 这个的作用是只去打印mapper相关的debug的日志
      • 上面一行的 logger.level.xxx 其中xxx表示 ( java文件夹开始的mapper所在的文件夹路径 )
    • logging.file.max-size=1mb
      • 表示文件大小超过1MB时,就又新建一个log文件
    • logging.file.max-history=3
      • 表示最大有3个历史日志文件,是动态的日期
    • spring.output.ansi.enabled = ALWAYS
      • 启用 ANSI 颜色的输出

(四) 将java项目部署到服务器

2021/05/16更新 - 单多模块打包部署

(1) application-production.properties 设置

application-production.properties
-------

# (1)
# 定义数据源组件
# 已弃用 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 注意 spring.datasource.url="jdbc:mysql://localhost:3306/数据库名称?时区信息"
# 分别是 ( 数据库url ) ( 数据库驱动 ) ( 用户名 ) ( 密码 )
# 注意:远程服务器的地址 ( jdbc:mysql://120.53.220.141:3306 ) 不要忘记端口号
# 注意:7-react-admin-java 是数据库名称
# 注意:characterEncoding=UTF-8 和 useSSL=false 和 serverTimezone=UTC 和 useUnicode=true 远程时都不能少
# 注意:用户名 和 密码 一定要是你的远程服务器中的用户名和密码
spring.datasource.url=jdbc:mysql://120.53.220.141:3306/7-react-admin-java?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root

(3) 在服务器中启动java程序服务

  • java -jar -Dspring.profiles.active=production target/7-react-admin-java-0.0.1-SNAPSHOT.jar

(4) 持久化

  • 上面(3)中只要关闭了finalShell后,java服务就不能访问了,所以我们要做持久化
  • nohup java -jar -Dspring.profiles.active=production target/7-react-admin-java-0.0.1-SNAPSHOT.jar >temp.txt &
  • nohup 就是不挂断运行命令,当账户退出或终端关闭时仍然运行,所以当我们退出时,java程序仍然在运行

(5) 查看部署的java代码的后台进程

  • ps -ef
    • ps命令:将某个进程显示出来
    • grep命令:表示查找
    • ps -ef | grep java 表示检查java进程是否存在
    • 可以看到 PID PPID CMD等信息,即可以根据PID关闭相关进程,比如java

(6) 如何停止运行部署在服务器的java代码

  • 杀掉该进程即可
  • kill 进程号
    • 进程号可以通过 ps -ef 或者更精确点的 ps -ef | grep java 来查看
  • 相关教程
image

image

项目源码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容