I am trying to trap SIGTERM using a class I derive from TSignalHandler.
I assumed it would be very much like what I've done succesfully with
TTimer.
Immediately after the instance is created, I get the following message:
SysError in <UnixSignal>: sigaction (Success)
My code is:
/////////////////////////////////////////////
#include "TSystem.h"
#include "TSysEvtHandler.h"
#include <signal.h>
class SignalTrap: public TSignalHandler
{
  private:
    ESignals signal;
  public:
    SignalTrap(ESignals sig);
    Bool_t Notify();
    ESignals GetMySignal()
    {
      return(signal);
    }
};
SignalTrap::SignalTrap(ESignals sig): TSignalHandler(sig)
{
  signal=sig;
  gSystem->AddSignalHandler(this);
}
Bool_t SignalTrap::Notify()
{
  printf("trapped a signal\n");
  return kTRUE;
}
//////////////////////////////////////
and I instantiate with:
  SignalTrap *sigtrap = new SignalTrap((ESignals)SIGTERM);
Calls to GetMySignal and GetSignal return 15, as expected. Sending
kill or kill -s 15 to the process, I dont see that Notify() has been
entered.
Regards,
Cyril