[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