博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
应用启动后立马自动停了怎么处理
阅读量:2061 次
发布时间:2019-04-29

本文共 1032 字,大约阅读时间需要 3 分钟。

在开发中我们经常会遇到测试或生产环境代码启动不了的情况。遇到这总情况大致可以用以下三步处理方式:

1.首先看有没有日志输出

查看应用输入的log日志,如果有对应log的日志可以对症下药。

在这里插入图片描述

2.查看控制台日志

如果没有log日志,说明应该可能还没有完全启动完成,这时候不一定有日志输出。那么就需要查看控制台日志了。

一般我们会运行一个启动脚本,这个时候修改一些启动参数后即可看到控制台输出。

在这里插入图片描述
一般来说生产/测试的运行信息不会输出控制台,需要修改脚本才可看到输出到控制台的信息。

简单介绍下 >>/dev/null 2>&1 &

1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt2:/dev/null 代表空设备文件, 所有写入它的内容都会永远丢失3:2> 表示stderr标准错误4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于15:1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"6:&表示后台运行

因此,>/dev/null 2>&1 也可以写成“1> /dev/null 2> &1”

那么本文标题的语句执行过程为:1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。2>&1 :接着,标准错误输出重定向 到 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。然后后台运行

因此我们想要看到控制台信息

只要将 >>/dev/null 2>&1 去掉即可
有 >>/dev/null 2>&1 & 命令时,控制台没有任何信息
在这里插入图片描述
去掉后可以看到控制台输出了
在这里插入图片描述

3.查看linux错误日志

如果错误日志还是没有输出,但是程序还是突然暴毙,那么就要看看是不是linux环境的问题了。

这时候运维神命令 dmesg就可以上场了。

dmesg 命令主要用来显示内核信息。使用 dmesg 可以有效诊断机器硬件故障或者添加硬件出现的问题。另外,使用 dmesg 可以确定您的服务器安装了哪些硬件。每次系统重启,系统都会检查所有硬件并将信息记录下来。执行/bin/dmesg 命令可以查看该记录,开机信息亦保存在/var/log目录中,名称为dmesg的文件里。

dmesg -T | grep java

在这里插入图片描述

这个例子中发现由于使用内存超过了容器设定,被容器kill掉了。

转载地址:http://rzmlf.baihongyu.com/

你可能感兴趣的文章
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>