应用启动后立马自动停了怎么处理
作者:互联网
在开发中我们经常会遇到测试或生产环境代码启动不了的情况。遇到这总情况大致可以用以下三步处理方式:
1.首先看有没有日志输出
查看应用输入的log日志,如果有对应log的日志可以对症下药。
2.查看控制台日志
如果没有log日志,说明应该可能还没有完全启动完成,这时候不一定有日志输出。那么就需要查看控制台日志了。
一般我们会运行一个启动脚本,这个时候修改一些启动参数后即可看到控制台输出。
一般来说生产/测试的运行信息不会输出控制台,需要修改脚本才可看到输出到控制台的信息。
简单介绍下 >>/dev/null 2>&1 &
1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt
2:/dev/null 代表空设备文件, 所有写入它的内容都会永远丢失
3:2> 表示stderr标准错误
4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
5: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掉了。
标签:输出,启动,dev,立马,dmesg,自动,日志,null,控制台 来源: https://blog.csdn.net/AndCo/article/details/115399877