I am using SMF to manage a service under Solaris10.
This service is itself a process manager, and forks off many child processes, some of which die occasionally (or are killed for various reasons). The service process itself is very robust and never dies however.
The problem I have is that when I manually kill one of these child processes using the KILL signal, SMF will restart the main service:
[ Aug 27 08:07:06 Stopping because process received fatal signal from outside the service. ]
Is there a way I can configure SMF or the service manifest such that SMF will not kill the service if one of the service sub-processes gets killed?
TIA
You need to set the following in your manifest:
Or you can do it on the fly with:
I've had the same problem just now, and was able to solve it by changing the service process itself to start the childs wrapped inside
/usr/sbin/ctrun -l child <command-and-arguments>
. The manifest itself uses the "child" service model.See
contract(4)
andctrun(1)
for details.if you try the on the fly method and get No such property group 'startd' you need to add the property first.