> Pokial sa nemylim, ctrl+c standardne zasiela SIGINT, nie SIGTERM

Ano, je to tak, ospravedlnujem sa.

Takze kill -SIGINT $pid urobi presne to, co CTRL+C.
Signal handler sa odignoruje.

> 2009/7/23 Dusan Zatkovsky <[email protected]>:
> > Ahoj.
> >
> > Mam dost vazny problem so zachytavanim signalov v jave.
> >
> > V konzolovej aplikacii potrebujem garantovat, ze sa mi vykona urcity blok
> > kodu. Akekolvek prerusenie vo vnutre tohoto bloku je povazovane za
> > fatalnu chybu, ktoru treba potom rucne riesit. Tento blok sa vykonava
> > cyklicky.
> >
> > Ja teraz potrebujem mat moznost tu aplikaciu rucne zastavit pomocou
> > ctrl+c. Problem je, ze aj nasledovny testovaci kod na ctrl+c zvysoka
> > kasle a aplikacia sa (s)proste zastavi. Pritom pomocou kill -TERM
> > $pidProcesu sa aplikacia chova tak, ako ma ( vypise text a pokracuje
> > dalej ).
> >
> > Ako donutim jvm, aby sa spravala tak ako sa patri?
> >
> > Diky.
> >
> > class MyHandler implements SignalHandler {
> >    public void handle(Signal s) {
> >        System.out.println("catch signal " + s.toString());
> >    }
> > }
> >
> > class Main {
> >    public static void main(String[] args) {
> >        MyHandler h = new MyHandler();
> >        Signal.handle(new Signal("TERM"), h);
> >        for (int i = 0; i < 100; i++) {
> >            System.out.println("sleep " + i);
> >            try {
> >                Thread.sleep(1000);
> >            } catch (InterruptedException e) {
> >                System.out.println("exc");
> >            }
> >        }
> >        System.out.println("end");
> >    }
> > }
> >
> >
> >
> >
> >
> > --
> > Dusan
-- 
Dusan

Odpovedet emailem