Hi,

After reading the svc.startd (1M) man page and in particular "SERVICE  
FAILURE", I'm trying to find if I can influence

"...
      If three method failures happen in a row, or if the  service
      is restarting more than once a second, svc.startd places the
      service in the maintenance state.
..."

It appears that even a transient service gets retried three times if  
the start fails to exit within the start timeout, i.e. the start times  
out. Basically, I have an SMF service which works fine. However, I'm  
now injecting some faults to determine how robust it is and in this  
regard the start method checks to see if the application is really up  
and available for work before exiting from the start method.

In one particular fault injected case, my SMF service consumes all of  
it's start timeout and then times out. However, it gets restarted 3  
times before entering into a maintenance state. In this regard if all  
of start timeout is consumed I would simply like the SMF service to  
enter maintenance state and not get retried three times.

So, is there a property I can use to influence the number of retries  
for start.

My only thought to achieve only one start is to keep a count of the  
consumed time, i.e. ksh variable $SECONDS and then exit with  
$SMF_EXIT_ERR_CONFIG or $SMF_EXIT_ERR_FATAL just before the service  
times out.

I was hoping a transient service would be exempt from being restarted  
three times but it appears not. I would appreciate any thoughts on how  
to achieve only one start or other suggestions to my thought of  
keeping a count within the start method.

Regards
Neil

Reply via email to