linux 获取进程输出流,linux后台进程与标准输出

一、遇到问题:

笔者在测试阶段,把服务拉到服务器上,部署之后,启动服务,但是没有启动成功,也没有报错信息。

二、先理解一些概念:

1、黑洞

/dev/null:这个就是黑洞,这是一个文件,这个文件是一个“只写”的文件,从里面读不出信息,为什么要使用这个呢?由于我们的进程中的信息(包括错误信息)默认是标准输出(也就是打印在控制台上),采用这个的话,可以把这些信息不打印。在很多shell脚本的编写中会采用这种方式。

参考:http://blog.csdn.net/kaiwii/article/details/7308729

2、标准输出

在Linux中文件的输入与输出有三种:标准输出、错误输出、标准输入:

80ce4aaebeda367209450f342b53fc5f.png

3、文本信息重定向:

我们的输出信息默认都是输出到控制台上,我们如何让它重定向到文件中,如下:

1c44e001153dff2368a5b3d5478d9d7c.png

重定向绑定问题:

339d9fce81cb84414a4923f48aa138fe.png

参考:http://www.cnblogs.com/520playboy/p/6275022.html

4、前台进程、后台进程

& 这个命令就是讲一个进程放到后台,也就是Linux中进程启动默认在前台。

前后台进程详解:http://blog.csdn.net/elbort/article/details/7576536

三、问题解决方式:

启动进程,但是通过ps -ef | grep xxx,查看启动失败,但是没有报错

219b894dcd1804e0a3f06b5ba39e156c.png

于是进入启动脚本中,查看脚本中进程的启动方式如下,把“>> /dev/null 2>&1 &”删掉,也就是把标准信息与错误信息打印出来:

717bc3834444085252d33907ae16697b.png

再启动如下提示:

d3fe648191608871722a9604e467212b.png

再通过free -m查看内存:

df67c1c190a2ff15219421baa04735b9.png

到达这里我们就定位到了问题的所在了,具体解决如下:

注意:

1、上面的错误提示可以看出是“堆内存”不足,这找到问题之后,可以按自己的想法做做一些事了。比如:减小启动时内存大小,杀掉不需要的进程。由于是在我自己的测试机上,我采用简单粗暴的方法,杀掉其它现在不用的服务。

2、注意:前台启动的进程,我们按 Ctrl+C,就杀死进程了。这种一帮只有在定位问题的时候改成前台进程启动,定位好了,一帮要改回去,使用后台进程在跑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值