承接上文,在上文中我们讲到了如何查看系统状态,如何把项目传到服务器上,今天我们来聊一聊如何在服务器上把程序启动起来,以及查看运行的状态
##在服务器上运行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)实现自动化的停止,启动?
领取专属 10元无门槛券
私享最新 技术干货