免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 11680 | 回复: 20
打印 上一主题 下一主题

C++ 程序进程被莫名杀死--求解释 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-17 10:19 |只看该作者 |倒序浏览
遇到一个问题,想请教高人。

用C++写的一个程序,运行一段时间后(约5.6分钟)就显示 “已杀死”,像被 kill 掉一样,但确实没有kill 它。系统没有core文件生成限制,但是也没有生成core文件。

程序的所有正常退出都有终端输出,可以进程结束时没有收到任何关于退出的输出。只在终端显示 “已杀死”,进程就终止了。


求高人指点。谢谢!

论坛徽章:
0
2 [报告]
发表于 2012-01-17 10:30 |只看该作者
内存是不是挂太高了? 内存占用太高的话内核会"有选择性的随机"kill进程

论坛徽章:
0
3 [报告]
发表于 2012-01-17 10:40 |只看该作者
怎么判断内存挂太高的情况?就是一个普通的程序啊,为什么这么特殊呢?

系统环境 Linux tjssmnweb 2.4.21-15.ELsmp #1 SMP Thu Apr 22 00:18:24 EDT 2004 i686 i686 i386 GNU/Linux
            gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-12


回复 2# lyjdamzwf


   

论坛徽章:
0
4 [报告]
发表于 2012-01-17 10:59 |只看该作者
On linux, you can do below commands to monitor your process and find out why it exists
$ ps -ef | grep <process name>
$sudo strace -p <process ID>

论坛徽章:
0
5 [报告]
发表于 2012-01-17 11:05 |只看该作者
谢谢。我试试。

回复 4# zyzbill


   

论坛徽章:
0
6 [报告]
发表于 2012-01-17 11:35 |只看该作者
没有strace命令。3楼有我的系统信息。谢谢!
回复 4# zyzbill


   

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2012-01-17 12:42 |只看该作者
在gdb里面让这个程序跑起来,看看怎么被kill的

当然也可以在程序里面自定义sigaction,这样可以捕捉信号源,可以看看信号是来自内核还是其他进程

论坛徽章:
0
8 [报告]
发表于 2012-01-17 15:07 |只看该作者
查看一下系统日志

论坛徽章:
0
9 [报告]
发表于 2012-01-17 15:18 |只看该作者
系统日志里只有

Jan 17 09:18:18 tjssmnweb sshd(pam_unix)[13892]: session opened for user ssmn by (uid=501)
Jan 17 09:23:55 tjssmnweb sshd(pam_unix)[14376]: session opened for user ssmn by (uid=501)
Jan 17 11:05:25 tjssmnweb sshd(pam_unix)[23306]: session opened for user ssmn by (uid=501)
Jan 17 11:22:03 tjssmnweb sshd(pam_unix)[24823]: session opened for user ssmn by (uid=501)
Jan 17 11:22:07 tjssmnweb sshd(pam_unix)[24865]: session opened for user ssmn by (uid=501)
Jan 17 11:24:41 tjssmnweb sudo(pam_unix)[25082]: authentication failure; logname=ssmn uid=0 euid=0 tty=pts/8 ruser= rhost= user=ssmn

这样的信息。没有记录杀死我的程序的内容。请指教。

现已捕获杀死进程的信号为 SIGKILL。我的程序怎么做才能不让系统给我这个信号呢?请赐教,谢谢!


回复 8# jetking


   

论坛徽章:
0
10 [报告]
发表于 2012-01-17 15:19 |只看该作者
现已捕获杀死进程的信号为 SIGKILL。我的程序怎么做才能不让系统给我这个信号呢?请赐教,谢谢!


回复 7# lxyscls


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP