热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

现公司是集成商,最近友商来了个新入职的运维,实习生,嘛也不会。手把手的教导怎么升级jar包。在此记录下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包就完成了!


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
author-avatar
mobiledu2502869423
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有