java程序员需要知道的linux知识(二)

承接上文,在上文中我们讲到了如何查看系统状态,如何把项目传到服务器上,今天我们来聊一聊如何在服务器上把程序启动起来,以及查看运行的状态

##在服务器上运行java程序

我们在本地开发时,在idea中可以直接通过idea的配置启动项目,如下图所示,但是在服务器上怎么运行呢?(这里面先只讨论web程序的运行)

先要说下打包方式,web程序有两种打包方式:

一种是打包包,

打成包需要再下载一个,把war包丢到tomcat的目录或者其他目录然后在tomcat 的server.xml中节点下配置目录

然后执行tomat目录下来启动程序

一种是打包成jar包

这种方式是我比较喜欢的方式,因为不需要再下载什么,直接把jar传到服务器上,通过平常使用命令就可以启动了,如下图所示:

和包运行不一样的是,运行startup.sh的时候,程序会后台运行,关了linux连接也没关系,但是用java启动的就不一样了,这个窗口一关,程序就挂了。

后台运行

包可以直接通过tomat的后台运行,我们可以深入,发现执行的是

打开找到最行执行java的部分

会发现其实也是简单的命令拼起来的,关键在于最后的这个符号。我们在jar包发布的命令同样加就可以了:

这样就可以后台运行啦

查看日志

查看日志常用的有两种,一种是常看实时日志,常用于开发调试的时候。因为程序运行在服务端,黑乎乎的,啥都看不到,这个时候,要是程序哪块功能运行不正常了,就只有上服务器查日志,看看抛了什么异常,还是参数不对。

简单说一说程序中的日志代码

这不是专门讲日志的文章,所以这块简单说一说,首先,声明都用slf4的Logger,这样无论实际实现是用logback , log4j , 等等,都可以做到只改jar包不改代码。

privatefinalstaticLoggerlogger=LoggerFactory.getLogger(xxxx.class);

具体配置这篇就不讲了,通过开发的时候开启debug , 线上的时候只打error级别,然后注意两个位置,一个是这个是用tomcat运行war包时,控制台的输出,都会进入到这个文件中,是日志最全的地方,另外一个就是程序中自己配置的位置。自己配置上的位置可以把远程调用,sql, 应用错误等等归到不同的文件中,方便查看

常用的查看日志命令

就笔者经验而言其实就一个命令:

实时查看,用于能现场复现的问题

刚刚才出现问题,往上面翻几行

服务器流量很大,日志一直刷个不停,看的眼都花了,那就过滤下

tail -f | grep 'xxx' 这样可以只显示带有'xxx'的日志

停止应用

现在我们开发了新的版本,要把以前运行的那个版本换下来,在窗口操作中,把程序关掉,然后重新打开新程序,在linux中思路也是一样:先找到原程序

红线框框中的内容就是id。

去停掉原程序

按本文上面的运行java程序,启动新的服务

总结

结合上一篇,两篇内容简述了一个java程序员和linux服务器打交道的常用命令等等,抱砖引玉,还有很多很多可以大辐提升生产力的方法,如同一个机器上要同时跑一个jdk1.8的项目,和一个jdk1.6的项目,要怎么启动? 怎么通过脚本(.sh)实现自动化的停止,启动?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190117G0Q1WU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券