论systemctl命令的利与弊

前言

今天在测试环境发布 SpringBoot
服务,发现死活找不到错误的地方,错误日志也生成,然后就一顿 tail
,一顿 cat
,发现日志就截止到我发服务之前, dubbo
服务结束的地方,如图所示。

<img src="http://qiniu-cdn.janker.top/oneblog/20200318202129609.jpg" style="zoom:50%;" />

WTF,why,我是丈二和尚摸不着头脑,后来我发现他这个服务不是像我之前那种 nohup java -jar xxx.jar
启动的,他这个是使用 systemctl restart service@xx
启动的。

<img src="http://qiniu-cdn.janker.top/oneblog/20200318202527014.png" style="zoom:50%;" />

正文

第六感告诉我,系统启动日志中肯定有猫腻,说完就干,一顿搜索。journalctl这个是我想要的查看linux各种服务启动指令。

journalctl -f | grep "xxxx" 比较粗略展示log

journalctl -xe| grep "xxxx" 比较详细展示log

结果如我所料,如图我没权限创建文件,emmmm,我好像找到我的锅了(之前为了本地调试改了日志的文件夹),真的手欠啊。

<img src="http://qiniu-cdn.janker.top/oneblog/20200318203421658.png" style="zoom:33%;" />

感受

其实我觉得这个锅不全是我的,之前接触的很多jar包发布都不是基于linux系统服务的这种形式,不是说不好,而是我觉得这种方式在我们找问题的时候并不友好,因为他不会像以前jenkins调用sh执行jar -jar指令的那种方式,能把一些比较明显的错误信息展示出来。个人觉得用这种方式发布jar不是特别好,当然他可以给我们带来很多方便,自启动这些。

补充理论

systemctl is-enabled iptables.service
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务
journalctl -f | grep "xxxx" 比较粗略展示log
journalctl -xe| grep "xxxx" 比较详细展示log

本文由 Janker 创作,采用 CC BY 3.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码

原文 

https://segmentfault.com/a/1190000022062763

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 论systemctl命令的利与弊

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址