2016-11-07 97 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