On Fri, Jun 01, 2007 at 10:01:10AM -0700, David Bustos wrote: > Quoth John Levon on Wed, May 30, 2007 at 11:20:13PM +0100: > > We've noticed that if a start method returns 1, then the processes in the > > contract are not killed (the contract is just orphaned). Is this the > > intended > > behaviour? I've failed to find documentation indicating that methods are > > expected to call smf_kill_contract() in this case. > > > > When our service ends up in maintenance we end up with three copies of the > > daemon running... > > This should only happen if you declared the service to be transient. > For contract services, we go into 'assured kill' mode, where we SIGKILL > the contract once a second until it's empty. See method_run(), I think.
The assured kill only seems to apply to stop methods, and is skipped anyway if the exit code is non-zero. Does this code need a judiciously-placed contract_kill() call? regards, john