linux后台进程与标准输出

 一、遇到问题: 

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

 

二、先理解一些概念:

    1、黑洞

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

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

    2、标准输出

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

192841_MZdp_3648248.png

    3、文本信息重定向:

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

193301_Cr2x_3648248.png

 重定向绑定问题:

194306_hMCo_3648248.png

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

 

    4、前台进程、后台进程

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

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

 

三、问题解决方式:

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

200259_3zcW_3648248.png

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

200359_rqcn_3648248.png

再启动如下提示:

200522_p0B6_3648248.png

再通过free -m查看内存:

200550_8Zpu_3648248.png

 

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

注意:

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

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

 

 

 

 

 

转载于:https://my.oschina.net/u/3648248/blog/1525770

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值