使用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