See the ECLiPSe User Manual for details on the operation of interrupt handlers.
The interrupt handlers of the following interrupts cannot be modified, since they cannot be caught by ECLiPSe .
    No. Code     Description  Example
    9   SIGKILL  kill         kill process from keyboard
    17  SIGSTOP  stop         cannot be caught, blocked, ignored
   The interrupts which can be caught or trapped are implementation
   defined.
The following interrupt handlers have a special meaning and can be used even with the embedded library version of Eclipse:
    Handler     Meaning
    -------     -------
    true/0      ignore the interrupt (SIG_IGN).
    default/0   take the default operating system action when the
                interrupt occurs (SIG_DFL).
    event/1     handle the signal by posting a (synchronous) event. The
                symbolic name of the interrupt will be used as the event name.
    throw/1     invoke exit_block/1 with the interrupt's symbolic name.
    abort/0     invoke exit_block(abort)
    halt/0      halt Eclipse and terminate the process
    internal/0  the signal is used by Eclipse to implement internal
                functionality (e.g. profiler)
    All other handler specifications cause the specified predicate to
    be called in a nested invocation of the Eclipse engine. This is
    not supported on some hardware/OS platforms, e.g. Windows.
Success:
    ?- get_interrupt_handler(alrm,M,N).
    M = event / 1
    N = sepia_kernel
    yes.
    ?- set_interrupt_handler(alrm,true/0), interrupt(alrm).
    yes.
    ?- kill(0, alrm).
    yes.
    ?- get_interrupt_handler(alrm,M,N).
    M = true / 0
    N = sepia_kernel
    yes.
    ?- [user].
     a :- write(log_output, "interrupt 16"), fail.
     user compiled 136 bytes in 0.00 seconds
    ?- set_interrupt_handler(16,a/0).
    yes.
    ?- kill(0, 16).
    interrupt 16
    yes.
Error:
    set_interrupt_handler(N,true/0).    (Error 4).
    set_interrupt_handler(15,P).        (Error 4).
    set_interrupt_handler(15.0,true/0). (Error 5).
    set_interrupt_handler(1000,X).      (Error 6).
    set_interrupt_handler(-1,X).        (Error 6).
    set_interrupt_handler(6,a/4).       (Error 6).  % arity > 3.
    set_interrupt_handler(6,t/2).       (Error 60). % no t/2.
    set_interrupt_handler(9,true/0).    (Error 170).
    set_interrupt_handler(17,true/0).   (Error 170).