使用Linux命令行发布springboot、javaWeb项目

导读:本篇文章讲解 使用Linux命令行发布springboot、javaWeb项目,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

使用Linux命令行发布Springboot、JavaWeb项目

javaWeb、SSM框架篇

把项目打成war包,放在tomcat的webapps下面

不知道怎么打成war包的,看这篇文章:宝塔搭建SSM(Web项目也一样)和Springboot项目,超详细图解,这里面有把SpringBoot打成jar包,也有把JavaWeb程序打成War包,用宝塔面板傻瓜式发布项目

在这里插入图片描述

访问 http:// 你自己服务器的ip地址 :8080/ssm(这是war包名)/

在这里插入图片描述

javaWeb、SSM框架发布结束

SpringBoot项目发布

把SpringBoot项目打出jar包,超简单

我这里就简述一下,如果还不清楚,可以看这篇文章:宝塔搭建SSM(Web项目也一样)和Springboot项目,超详细图解

maven下面这一串代码就是用来把SpringBoot打出jar包的,创建SpringBoot时,自动创建,看看就好

<build>
<plugins>
	<plugin>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-maven-plugin</artifactId>
	</plugin>
</plugins>
</build>

之后就很简单了先点最右边的maven,双击clean,再双击compile,再双击package

在这里插入图片描述

然后看见BUILD SUCCESS就说明成功了在target中可以看见jar包了

在这里插入图片描述

把jar包随便home目录下就行,我这里放在www目录下的,无伤大雅,(其实随便放就行,但还是不要放在重要的目录文件下,免得到时候错删文件就完了,所以home目录下是最好的,你可以再在里面创建一个目录来存放jar包都可以)

在这里插入图片描述

我们先来试试最简单的运行

java -jar photo-0.0.1-SNAPSHOT.jar 

这里我把SpringBoot的端口改为了8500,之前我已经把项目跑起来了,没有关闭,就会报端口被占用的错误,这是个重点,我在文章后面会具体讲到。

在这里插入图片描述

如果没有报错,像这样就是运行成功了,这里不是后台运行,所以不能退出,就这样访问项目就行(按Ctrl+Z退出)

在这里插入图片描述

后台运行SpringBoot项目

首先我们先看一下,安装了nohup没用

这是看位置信息

which nohup  #这是看位置信息

# 示例,如果有这样的提示,就说明有
[root@zhao photo]# which nohup
/usr/bin/nohup

这是看版本信息

nohup --version  #这是看版本信息

# 示例,如果有这样的提示,就说明有
[root@zhao photo]# nohup --version
nohup (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

没有的安装一下nohup(就算安装了的,也可以跑一下这串代码)

yum install coreutils

# 示例
[root@zhao photo]# yum install coreutils
Last metadata expiration check: 1:51:52 ago on Mon 13 Jun 2022 09:00:09 PM CST.
Package coreutils-8.30-12.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

使用nohup后台运行jar包(这里报端口异常的话,也要结束一下端口),运行成功后不要按Ctrl+Z,按回车就行

nohup java -jar XXX.jar >log.txt &

解释下 >log.txt

log.txt是将command的标准输出重定向到log.txt文件,即输出内容不打印到屏幕上,而是输出到log.txt文件中。这个文件就在你存放的jar包,旁边,你可以看看输出的日志
在这里插入图片描述

最后一个“&”表示后台运行程序

[root@zhao photo]# nohup java -jar photo-0.0.1-SNAPSHOT.jar >log.txt &
[1] 2502983
[root@zhao photo]# nohup: ignoring input and redirecting stderr to stdout

端口号 2502983 ,这里我们的项目就发布成功了,后面的就是拓展了,但是杀进程的一定一定要看,这个很重要,用的很多

可通过jobs命令查看后台运行任务

jobs

#示例
[root@zhao photo]# jobs
[1]+  Running                 nohup java -jar photo-0.0.1-SNAPSHOT.jar > log.txt &

如果忘了进程号,可以通过如下命令来查看当前运行的jar包程序进程号

ps -ef|grep xxx.jar

#示例
[root@zhao photo]# ps -ef|grep photo-0.0.1-SNAPSHOT.jar 
root     2502983 2499753  3 23:05 pts/1    00:00:07 java -jar photo-0.0.1-SNAPSHOT.jar
root     2503301 2499753  0 23:09 pts/1    00:00:00 grep --color=auto photo-0.0.1-SNAPSHOT.ja

或者使用 ps -aux | grep java

a:显示所有程序

u:以用户为主的格式来显示

x:显示所有程序,不以终端机来区分

ps -aux | grep java

# 示例,这里太多了,也只是进程可以不看
[root@zhao photo]# ps -aux | grep java
root      125591  0.0  0.1 150108  2804 ?        S    May18   0:00 sudo -u root nohup /usr/bin/java -jar /www/wwwroot/dingdang/DingDongSchool-0.0.1-SNAPSHOT.jar --server.port=8400
root      125592  0.0 12.5 2918840 220980 ?      Sl   May18  21:08 /usr/bin/java -jar /www/wwwroot/dingdang/DingDongSchool-0.0.1-SNAPSHOT.jar --server.port=8400
root      287876  0.0  0.0  19780   140 ?        Ss   May20   0:00 jsvc.exec -java-home /usr/java/jdk1.8.0_121/jre -user www -pidfile /www/server/tomcat/logs/catalina-daemon.pid -wait 10 -umask 0027 -outfile /www/server/tomcat/logs/catalina-daemon.out -errfile &1 -classpath /www/server/tomcat/bin/bootstrap.jar:/www/server/tomcat/bin/commons-daemon.jar:/www/server/tomcat/bin/tomcat-juli.jar -Djava.util.logging.config.file=/www/server/tomcat/conf/logging.properties -java.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dignore.endorsed.dirs= -Dcatalina.base=/www/server/tomcat -Dcatalina.home=/www/server/tomcat -Djava.io.tmpdir=/www/server/tomcat/temp org.apache.catalina.startup.Bootstrap
www       287877  0.0  9.6 2884184 168828 ?      Sl   May20  21:25 jsvc.exec -java-home /usr/java/jdk1.8.0_121/jre -user www -pidfile /www/server/tomcat/logs/catalina-daemon.pid -wait 10 -umask 0027 -outfile /www/server/tomcat/logs/catalina-daemon.out -errfile &1 -classpath /www/server/tomcat/bin/bootstrap.jar:/www/server/tomcat/bin/commons-daemon.jar:/www/server/tomcat/bin/tomcat-juli.jar -Djava.util.logging.config.file=/www/server/tomcat/conf/logging.properties -java.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dignore.endorsed.dirs= -Dcatalina.base=/www/server/tomcat -Dcatalina.home=/www/server/tomcat -Djava.io.tmpdir=/www/server/tomcat/temp org.apache.catalina.startup.Bootstrap
root      891738  0.0  0.0  19780   140 ?        Ss   May27   0:00 jsvc.exec -java-home /usr/java/jdk1.8.0_121 -user www -pidfile /www/server/tomcat9/logs/catalina-daemon.pid -wait 10 -umask 0027 -outfile /www/server/tomcat9/logs/catalina-daemon.out -errfile &1 -classpath /www/server/tomcat9/bin/bootstrap.jar:/www/server/tomcat9/bin/commons-daemon.jar:/www/server/tomcat9/bin/tomcat-juli.jar -Djava.util.logging.config.file=/www/server/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dignore.endorsed.dirs= -Dcatalina.base=/www/server/tomcat9 -Dcatalina.home=/www/server/tomcat9 -Djava.io.tmpdir=/www/server/tomcat9/temp org.apache.catalina.startup.Bootstrap
www       891739  0.0  4.4 2874792 77496 ?       Sl   May27  14:23 jsvc.exec -java-home /usr/java/jdk1.8.0_121 -user www -pidfile /www/server/tomcat9/logs/catalina-daemon.pid -wait 10 -umask 0027 -outfile /www/server/tomcat9/logs/catalina-daemon.out -errfile &1 -classpath /www/server/tomcat9/bin/bootstrap.jar:/www/server/tomcat9/bin/commons-daemon.jar:/www/server/tomcat9/bin/tomcat-juli.jar -Djava.util.logging.config.file=/www/server/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dignore.endorsed.dirs= -Dcatalina.base=/www/server/tomcat9 -Dcatalina.home=/www/server/tomcat9 -Djava.io.tmpdir=/www/server/tomcat9/temp org.apache.catalina.startup.Bootstrap
root     2502983  2.5  8.1 2873588 143096 pts/1  Sl   23:05   0:07 java -jar photo-0.0.1-SNAPSHOT.jar
root     2503361  0.0  0.0  12136  1184 pts/1    S+   23:10   0:00 grep --color=auto java

Linux查看某端口进程并结束他

查看使用某端口的进程(重要)

lsof -i:8500
      
      #示例
[root@zhao ~]# lsof -i:8500
COMMAND     PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    2492530 root   19u  IPv6 20091472      0t0  TCP *:fmtp (LISTEN)

查看当前系统中正在执行的各种进程的信息

ps -xx :

  • -a 显示当前终端运行的所有的进程信息(当前的进程一个)
  • -u 以用户的信息显示进程
  • -x 显示后台运行进程的参数!
# ps -aux 查看所有的进程
ps -aux|grep mysql
# | 在Linux这个叫做管道符 A|B
# grep 查找文件中符合条件的字符串!

查看到进程id之后,使用netstat命令查看其占用的端口

netstat -nap|grep 8500

 #这里的2492530就是端口
[root@zhao ~]# netstat -nap|grep 8500
tcp6       0      0 :::8500                 :::*                    LISTEN      2492530/java

杀掉进程(重要)

kill -9 2492530

这里我讲点题外话,为什么Linux杀死进程,有个数字9

用命令 kill -l 可以查看linux下的所有信号:

SIGHUP:1号信号,Hangup detected on controlling terminal or death of controlling process(在控制终端上挂起信号,或让进程结束)

SIGINT:2号信号,Interrupt from keyboard(键盘输入中断,ctrl + c )

SIGQUIT:3号信号,Quit from keyboard(键盘输入退出,ctrl+ | )

SIGABRT:6号信号,Abort signal from abort(3)(非正常终止,double free)

SIGKILL:9号信号,Kill signal(杀死进程信号,linux规定进程不可以忽略这个信号)

综上所述,kill -9中,9代表的就是9号信号,带有强制执行的意思,它告诉进程:“无论你现在在做什么,立刻停止”。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74759.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!