首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么“杀死-15”有时会失败?

为什么“杀死-15”有时会失败?
EN

Stack Overflow用户
提问于 2013-06-11 16:33:04
回答 1查看 211关注 0票数 3

我有一个用C开发的程序,这个程序包含两个子线程。有时,当我试图用kill -15 <pid of main thread>停止应用程序时,应用程序不会退出。我只能在ps aux输出中看到主线程的pid (子线程的pids没有显示在ps aux的输出中)。并且继续用kill -15 <pid>杀死剩余的pid并不会导致这个过程的终止。只有kill -9 <pid>才会导致进程的终止。

这种行为在1000次尝试中发生了3次。

  • 操作系统是OpenWRT Linux。
  • 内核版本为2.6.30
  • Libs:libuClibc-0.9.30.1.solibpthread-0.9.30.1.so

请不要将此主题与this one重复,因为我的程序不包含sigaction处理程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 16:42:39

这不是重复,但答案是一样的。附加strace或gdb,看看挂起时它在做什么。但是,只有两种解释:您(或您正在使用的一些库代码)用SIGTERM阻止sigprocmask,或者进程在内核中处于不可中断的休眠状态,这通常是由于试图访问失败的存储设备(如即将崩溃的硬盘或刻痕光盘)的结果。

您能详细介绍一下您使用的操作系统、内核版本、库等吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17049274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档