0

I know about Solaris SMF kill service because child dies. Here is my problem: I want SMF to ignore any crash dumps (seg faults) by my service's children. I thought I would achieve this by adding this to my svc.xml and doing a svcadm refresh and restart

<property_group name='startd' type='framework'>
<propval name='ignore_error' type='astring'
value='core,signal' />
</property_group>

Now I see the following in application-mysvc:default.log (questions inline as comments)

[ Feb 15 10:19:56 Enabled. ]
[ Feb 15 10:19:56 Executing start method ("/lib/svc/method/mysvc start") ]
tee: /dev/msglog: Permission denied
Started mysvc for server xxx
[ Feb 15 10:19:57 Method "start" exited with status 0 ]

Why is SMF stopping mysvc - the core dump was in a child process - has the above config not gone into effect?

[ Feb 15 10:26:41 Stopping because process dumped core. ] 
[ Feb 15 10:26:41 Executing stop method (:kill) ]

Is this some kind of auto-restart behaviour kicking in?

[ Feb 15 10:26:58 Executing start method ("/lib/svc/method/mysvc start") ] 
tee: /dev/msglog: Permission denied
Started mysvc for server xxx
[ Feb 15 10:26:58 Method "start" exited with status 0 ]

Who/what disabled the service?

[ Feb 15 10:30:30 Stopping because service disabled. ] 
[ Feb 15 10:30:31 Executing stop method (:kill) ]

I posted at OTN but no response yet.

Also, I am not able to get listprop or svcprop to display my startd ignore_error

ottodidakt
  • 101
  • 4

1 Answers1

1

The manifest file is not the canonical configuration for your service. On older versions, the manifest file was not used at all after it was initially imported. More recently, the manifest files are read on boot to configure all services. On no systems today does changing the manifest have an immediate effect, even with a svccfg refresh.

You probably just need to "svccfg import" the manifest again. You could also use svccfg to modify the property directly, then refresh it.

Dave Pacheco
  • 185
  • 2