Mark Fenwick wrote: > >> > *** kill 453 ***** >> > 1718 1071 crit no process process 453 received a fatal signal >> > 1718 1072 crit no process contract empty >> > >> > >> > BTW if I change my method so that it only launches a single daemon >> > then killing this process results in the service being restarted. >> >> It sounds like PID 455 isn't dying from the signal. Instead it is >> voluntarily exiting after receiving the signal. This cannot be >> detected by the kernel, and therefore won't result in a contract >> event. > > What you say is true, the daemon (in.iked in this case) does trap the signal > and exit, but if the only daemon to be started from this service is in.iked > then killing it does cause the service to be restarted. If this is wrong > then I need to modify in.iked so that it behaves correctly. That's because the last member of the contract exited and an empty event was generated. The service is supposed to be restarted in case the last process exited. When you have two deamons running and kill one, no event is generated because the signal is handled (events are sent by the kernel) and the contract still has processes in it.
-Antonello