2016-11-07 8 views
1

私は、Javaスレッドtop -H -p [java ppid number]のリストを持っており、このphtread_kill()セグメンテーションフォールトが

sudo gcc ckill.c -o comp -pthread 

戻りますようにコンパイルするCコール

#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; 
} 

によってpthread_killの()と一定の殺したい(コアダンプ)

セグメンテーション障害(コアダンプ)

どういうところが間違っていますか?

+0

それがうまくいくとしましょう。なぜそうしますか?意図的にプログラム/ VMの作成に失敗しますか?私は好奇心が強いです...私にはかなりサディスティックに聞こえます:) – Fildor

+0

誰かが、特定のユーザーレポートがJavaを読み込み、ブラウザを強制終了することを私に示しました。彼は私にそれを解決するように頼んだ。私はソースがありません... – Riorita

+0

それを削除;)ちょうど冗談...その問題を解決しようとすると非常に興味深い方法。本当に何かを想像することはできませんでした。おそらく、実際の問題に焦点を当てた別の質問を開始する必要がありますか? – Fildor

答えて

1

pthread_kill()は、と同じプロセス内のスレッドに信号を送信できます。そのため、PIDではなく、pthread_tが引数として使用されます。だからあなたは、あなたがやっているようにいくつかのJavaプロセスにシグナルを送ることはできません。

システム上の任意のプロセスに信号を送信する場合は、kill()を参照してください。

+0

ありがとう。 kill()はすべてのJavaを強制終了します。特定の漏れスレッドが必要です – Riorita

+0

pthreadはJavaスレッドと同じではありません。いくつかの問題のあるJavaスレッドを探しているなら、pthreadを使ってkill/identifyを行うのはちょっとした過ちです。漏れたスレッドを識別するために簡単なスクリプトを使用してみませんか? – usr

+0

私はそれを識別しました..私は2つの最後のアイデアを持っています:風袋かコードでそれを殺す – Riorita

関連する問題