2016-11-07 123 views
1

我有Java线程top -H -p [java ppid number]的列表,并想杀死某些与pthread_kill()的调用Cphtread_kill()分段故障(核心转储)

#include <sys/types.h> 
#include <signal.h> 
#include <stdio.h> 
#include <linux/unistd.h> 
#include <errno.h> 
#include <unistd.h> 
#include <pthread.h> 

int main(void) 
{ 
     pthread_kill(23242,SIGKILL); 
     return 0; 
} 

编译这样

sudo gcc ckill.c -o comp -pthread 

回报

分割错误(核心转储)

怎么了?

+0

让我们假设它会工作 - 为什么你会这样做?故意让程序/虚拟机失败?我很好奇......听起来相当虐待:) – Fildor

+0

有人向我展示了某些用户报告加载java并杀死浏览器。他让我解决它。我没有消息来源... – Riorita

+0

删除它;)只是开玩笑...非常有趣的方式来尝试解决这个问题。我无法想象任何真的。也许你应该开始关注实际问题的另一个问题? – Fildor

回答

1

pthread_kill()可以发送信号给同一进程中的线程。因此,它需要pthread_t作为参数,而不是PID。所以你不能像你一样发送信号给一些java进程。

如果你想发送一个信号给系统上的任何进程,看看kill()

+0

谢谢。 kill()杀死所有java,我需要某些泄漏线程 – Riorita

+0

pthreads与Java线程不一样。如果你正在寻找一些有问题的Java线程,那么使用pthreads来杀死/识别似乎有点矫枉过正。为什么不使用简单的脚本来识别泄漏的线程? – usr

+0

我已经识别它..我有两个最后的想法:通过tomcat或代码 – Riorita