java后端运维linux服务器基本操作

现公司是集成商,最近友商来了个新入职的运维,实习生,嘛也不会。手把手的教导怎么升级jar包。在此记录下linux服务器下的一些基本操作。供新手参考,如有疏漏或错误,请指出,共同学习,共同探讨。

1.根据jar包名去判断

        升级jar包 我们首先要停掉旧的jar包,我们要获取之前运行的jar包,查看现在在运行的java进程

ps -ef | grep java

可以看到查出来两个进程:

简单解释一下为什么会有两个,第一个就是我们要找的进程,可以看到当时的启动命令的是

java -jar DownloadDemo.jar

而第二个是什么呢?

其实第二个是这个查询命令本身。就是说你在执行查询的时候,查询本身也是一个进程。

在实际的生产环境中,可能会有多个java进程,这个时候就需要通过jar包名去判断哪个进程才是你想要重新部署的那个了。当然也会有情况,你根据jar包名无法判断哪个是(尤其是人员更迭频繁而且文档不齐全的公司),这个时候我们可以通过端口号去判断哪个进程才是我们想要的。

2.根据端口号去判断

        如果不知道原来的jar包位置也不知道jar包名称有哪些要素,我们还可以通过服务的端口号去定位,以笔者的端口号9090为例。使用如下命令查看网络信息详情:

netstat -tunlp | grep 9090
#9090 换成你的端口号即可

在这里贴一张图解释命令参数的含义:

看完参数解释后发现,其实-u是我们不需要的,也就是说 netstat -tnlp即可,我们来看一下命令的执行结果:

 进程号为11417的进程就是我们想要的进程,再用ps命令查看一下这条进程:

 可以看到就是我们要找的进程。

停掉旧的进程后,更新jar包,我们就可以启新的jar包了,这个时候可能还会遇到一个问题,你甚至不知道jar包位置,如何确定jar包位置呢?这个就需要停jar包之前去寻找了。如果停了之后再找那就杯具了。

3.根据进程寻找jar包位置

        如果服务器文件不是很多,而且知道jar包名字,可以用find命令去找jar包的位置,在此不作赘述。

        如果不知道jar包位置,找到进程后先不要停,我们可以根据进程的信息去寻找jar包的位置,

所以遇到找不到jar包位置的困难,不要怕,我们记下进程id(pid),然后大喊三遍:

linux一切皆文件!

linux一切皆文件!

linux一切皆文件!

奥里给!

然后输入以下指令

ls -l /proc/11417
#11417为pid

可以看到进程的详情信息,目前对我们有用的是exe和cwd

cwd就是当前进程jar包所在的目录,exe是执行文件的路径,即jdk/jre中java所在的路径。

另:此方法也经常用于寻找nginx和nginx目录等。

到此,我们绝对绝可以换新包启动新包了。

 4.启新jar包

        如果后台日志被重定向到了.out文件中,如图中dd.out所示:

在确保旧的out文件没用后,我们应当先删除旧的out文件,再启动新包。

rm -f dd.out

然后杀掉旧的进程,执行启动新包的命令:

kill -9 11417
nohup java -jar /home/bob/springbootDemo/DownloadDemo.jar > DownloadDemo.out &
#这里我选择用jar包的绝对路径,避免其他同事找不到jar包路径的问题

可以看到 新的jar包已经启动了,pid是11935,我们再用ps命令查看一下。 

 因为启动命令中是jar包的绝对路径,所以查看进程中也可以查看到jar包的绝对路径,如果不放心 可以看下后台日志是否启动成功了。

bob@zhang:~/springbootDemo$ tail -f DownloadDemo.out
2022-03-14 16:53:06.626  INFO 11935 --- [           main] com.cjbdi.DownloadDemo                   : Starting DownloadDemo v1.0-SNAPSHOT on zhang with PID 11935 (/home/bob/springbootDemo/DownloadDemo.jar started by bob in /home/bob/springbootDemo)
2022-03-14 16:53:06.630  INFO 11935 --- [           main] com.cjbdi.DownloadDemo                   : No active profile set, falling back to default profiles: default
2022-03-14 16:53:08.714  INFO 11935 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9090 (http)
2022-03-14 16:53:08.736  INFO 11935 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-03-14 16:53:08.737  INFO 11935 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.31]
2022-03-14 16:53:08.941  INFO 11935 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-03-14 16:53:08.945  INFO 11935 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2179 ms
2022-03-14 16:53:10.062  INFO 11935 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2022-03-14 16:53:10.453  INFO 11935 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 9090 (http) with context path ''
2022-03-14 16:53:10.459  INFO 11935 --- [           main] com.cjbdi.DownloadDemo                   : Started DownloadDemo in 4.674 seconds (JVM running for 5.506)

用tail -f 看out文件,可以看到服务已经再9090端口成功启动了!

到此更新jar包就完成了!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值