java

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ java ] in KIDS
글 쓴 이(By): Darkness ()
날 짜 (Date): 2000년 8월 16일 수요일 오후 07시 03분 43초
제 목(Title): Linux에서 Signal Handling


리눅스에서 Signal Handling이 가능한가요??

자바로 서버 프로그램을 하나 짰는데요...

이 서버를 죽일때 꼭 해야 할 일이 있거든요...

즉, 

kill -9 java프로그램pid 하면 서버가 죽는데.. 죽기전에 실행 해야 할 루틴이 

있습니다.
 
그래서 kill signal이 들어왔을때, 그것을 인식하고 루틴을 실행한 후에 죽게

만들려고 합니다.

어디서 소스가 있길래 그대로 붙여다 써보니깐... 시그널 처리를 하는 것 같은데

안죽어서요...

밑에건 서버 소스는 아니고 


시그널이 되는지 시험해보기 위해서 배끼고 만든  소스입니다.
 

      1 import sun.misc.Signal;
      2 import sun.misc.SignalHandler;
      3 
      4 public class SomeClass
      5 {
      6     private static final String SIG_ABRT = "ABRT";
      7     private static final String SIG_BREAK = "BREAK";
      8     private static final String SIG_TERM = "TERM";
      9     private static final String SIG_SEGV = "SEGV";
     10     private static final String SIG_FPE = "FPE";
     11     private static final String SIG_ILL = "ILL";
     12     private static final String SIG_INT = "INT";
     13 
     14     SomeClass()
     15     {
     16         SignalHandler sigHdl = new SignalHandler ()
     17             {
     18                 public void handle( Signal aSignal )
     19                 {
     20                     System.out.println( "Caught " + 
aSignal.toString() + " signal.");
     21                 }
     22             };
     23         Signal.handle( new Signal( SIG_INT ), sigHdl ); 
     24         Signal.handle( new Signal( SIG_TERM ), sigHdl ); 
     25     }
     26 
     27     public static void main(String argv[])
     28     {
SomeClass sc = new SomeClass();

     29         System.out.println("Program started");
     30         for(int i= 0; i < 10000 ; i++)
     31         {
     32             for(int j=0; j < 10000; j++)
     33             {
     34                 for(int k=0; k < 10000; k++)
     35                 {
     36                 //do nothing...
     37                 }
     38             }
     39             System.out.println("hahaha");
     40             
     41         }
     42 
     43     }
     44 }
     45 

저는 이게 원래 지원이 안 되는 것인지 제가 다른 사람의 소스를 잘못 고친

것인지 모르겠습니다.

아시는분 꼭 가르쳐 주세요...

감사합니다.

왜 sun site에 가도 Signal에 대한 메뉴얼이 없는지 모르겠습니다. 



[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.