[erlang-questions] Signal handling (TERM, INT etc)

Claes Wikström klacke@REDACTED
Tue Jul 1 23:14:30 CEST 2008


Lev Walkin wrote:
> Claes Wikström wrote:
>> Lev Walkin wrote:
>>
>>> Second, you can create a linked-in driver which sends a message
>>> back to a corresponding server. This allows you to intercept signals
>>> directly instead of relying on some external notificator.
>>>
>>
>> Mind you not in the signalhandler though - that will break major
>> havoc with the runtime. There is no good way as far as I know to
>> have a sighandler in Erlang.
>>
>> Only possible solution I see is to
>>
>> 1. Have a socket setup from the driver to the beam (over loopback)
>> 2. in the sighandler write some data on the socket.
> 
> Just to clarify, my idea was:
> 
> 1. create a linked-in driver which does the following
>    a) establishes a signal handler
>    b) creates a pipe(2)
>    c) registers one end of the pipe with erlang runtime
>       to get proper FD activity notifications
> 
> 2. in the signal handler, write a byte into the other end
>    of the pre-established pipe(2).
> 
> 3. in the main body of the linked-in driver, send some message
>    to erlang when Erlang VM notifies it about FD activity.
> 


Same idea - it'll work just fine.

/klacke



More information about the erlang-questions mailing list