SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

准备

SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
先Maven clean 删除原来存在的target目录,然后Maven install 用来编译生成项目jar包
控制台显示
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
出现The requested profile “pom.xml” could not be activated because it does not exist. 打开项目的属性找到maven这一项里面的pom.xml删除保存就好了,原因是啥,还没搞清楚。。。。
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
然后下载支持FTP的软件,访问阿里云服务器,
主机:公网IP 用户名:root 端口:22
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
把打包好的jar文件上传到服务器,我这里新建了一个local文件夹
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

然后在阿里云的CentOS系统中安装JAVA,自己上传下面网址对应的版本也行,这里是直接使用yum安装了
https://www.oracle.com/java/technologies/javase-jdk8-downloads.html下载java
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

1、查看yum库中的java安装包 :yum -y list java*

2、安装需要的jdk版本的所有java程序(这里安装jdk8):yum -y install java-1.8.0-openjdk*

(安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64)/

3、查看java版本:java -version

然后阿里云的服务器开通8080端口
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

按照这两个输入就行
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

之后登陆到服务器,
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )输入以下命令
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
访问结果就是如下
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

完成之后你会发现,当你关闭ssh会话后,外网就访问不了了,因为SSH链接相当于开启一个会话,会话内开启的进程,在会话结束时,都将被销毁。

一、起初使用的springboot启动方式:java -jar xxx.jar

这种方式启动后,控制台被程序占据,一直打印信息,无法做其他事情。想做其他事情必须终止程序。

二、后台启动:java -jar xxx.jar &

非常简单,这用方式启动后,控制台可以执行其他命令。
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
记住这个1

当使用 & 将一个进程放置到后台运行的时候,Bash 会提示这个进程的进程 ID。在 Linux 系统中运行的每一个进程都有一个唯一的进程 ID,你可以使用进程 ID 来暂停、恢复或者终止对应的进程,因此进程 ID 是非常重要的。

这个时候,只要你还停留在启动进程的终端当中,就可以使用以下几个命令来对管理后台进程:

  • jobs 命令可以显示当前终端正在运行的进程,包括前台运行和后台运行的进程。它对每个正在执行中的进程任务分配了一个序号(这个序号不是进程 ID),可以使用这些序号来引用各个进程任务。SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
  • fg 命令可以将后台运行的进程任务放到前台运行,这样可以比较方便地进行交互。根据 jobs 命令提供的进程任务序号,再在前面加上 % 符号,就可以把相应的进程任务放到前台运行。
  • 使用 ctrl+z 组合键可以将前台运行的任务暂停,仅仅是暂停,而不是将任务终止。当使用 fg 或者 bg
    命令将任务重新启动起来的时候,任务会从被暂停的位置开始执行。但 sleep 命令是一个特例,sleep 任务被暂停的时间会计算在
    sleep 时间之内。因为 sleep 命令依据的是系统时钟的时间,而不是实际运行的时间。也就是说,如果运行了 sleep
    30,然后将任务暂停 30 秒以上,那么任务恢复执行的时候会立即终止并退出。
  • bg 命令会将任务放置到后台执行,如果任务是暂停状态,也会被启动起来。

fg 这里试了不带%也行,我用help -s fg 也没提示说要带%,不太懂
下面先是执行fg 1命令,把1号ID的进程放到前台,然后Ctral+z 挂起,可以看到[1] 是stopped的,然后查看bg命令用法,和fg命令一样,fg 1命令使ID为1的进程再运行起来
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
参考关于fg bg jobs的介绍参考了下面网址
https://linux.cn/article-10587-1.html

如果想关闭ssh会话后,还能后台运行,那就使用nohup
参考了这个网址https://www.cnblogs.com/sandea/p/10716399.html

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。

该命令的一般形式为:nohup command &

使用nohup命令提交作业

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
Linux nohup、&、 2>&1是什么? 这个也可以参考下
另外linux中指令帮助有三个 help -s 指令或者 info 指令 或者 man -k 指令
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

这时候关闭窗口,你会发现你部署的springboot 网站还是能够打开的,但是当你再次连接服务器输入Jobs发现不会显示运行的springboot进程,这是因为jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
参考下面的网址https://www.cnblogs.com/cfas/p/9348880.html

SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

ps -ef是以全格式显示当前所有的进程
ps是Linux 操作系统中的一个命令,用来查看系统进程的.
该命令语法格式如下:
ps [选项]
下面对命令选项进行说明:
-e 显示所有进程。
-f 全格式。

ps -e 就是如下
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

ps-ef如下
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

查到了活动的进程了,我们可以直接使用kill指令结束掉我们的springboot进程
通过helo -s 查看kill,发现直接kill 加上PID号码就行了
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )
输入后,可以在ps -ef查看进程会发现没有了的
SpringBoot 部署到阿里云CentOS(以及常用指令 jobs,fg,bg,nohup,ps -ef,kill,man -k,help -s,info )

Linux之man命令详解及中文汉化

yum update
yum install man-pages-zh-CN
安装完毕后

通过时速如 vi .bashrc命令进入编辑器

在.bashrc中增加:
alias cman=‘man -M /usr//share/man/zh_CN’

使用vi退出时候 按ESC键 从插入模式 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
回车就好

退出后输入 source .bashrc //在命令行执行,为了使刚刚添加的alias生效