An update to where I am:
I entered made the above changes to the manifest and it would not import. I then used svccfg to manually add the startd and ignore_error entries. At the time I thought it was working.
Next I wanted to figure out why the manifest I was given was not working, which I will get back to. Also I wanted to make sure if the system restarted that the service would retain those settings. It turns out it did, but the service would not start.
The problem with the way the manifest was written was it defined another instance that we weren't using and then everything else was written inside of it. So no start and stop methods for the default instance, and my property_group settings were not being applied to the default. I rewrote the manifest by getting rid of the defined instance, declared a single_instance, and added the property group to the default.
Swell, I thought I solved the problem because the manifest imported and the service started fine. Except I am back at square one, because the
startd/ignore_error astring SIGSEGV,SIGABRT,SIGILL,SIGQUIT,SIGSYS
that are clearly showing up in the svcprop do not seem to be doing what they are supposed to: it went back to maintenence mode after 4 failures. I think the only reason it seemed to work is because the lack of a stop and start made it impossible for the service to bring it down. I am not sure how the system even allowed that to get in, but its the only thing I could think of. :wall:
After all that, any idea how to stop it from going down after a failure?
---------- Post updated 09-13-12 at 01:06 PM ---------- Previous update was 09-12-12 at 01:44 PM ----------
Not sure if there is any extra information I can provide. It's not perfect, but I think I have purged the obvious flaws in the manifest:
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
Production Infonet Manifest
July 23, 2012 03:31:42 PDT dgz
-->
<service_bundle type='manifest' name='site:infonet'>
<service
name='site/infonet'
type='service'
version='1'>
<single_instance />
<dependency name='paths'
grouping='require_all'
restart_on='error'
type='path'>
<service_fmri value='file://localhost/opt/unisyn/infonet/' />
<service_fmri value='file://localhost/opt/unisyn/infonet/lib/system.conf' />
</dependency>
<dependency name='network'
grouping='require_any'
restart_on='error'
type='service'>
<service_fmri value='svc:/network/service' />
</dependency>
<dependent
name='infonet_multi-user'
grouping='optional_all'
restart_on='none'>
<service_fmri value='svc:/milestone/multi-user' />
</dependent>
<!--
The timeout needs to be large enough to wait for startup.
-->
<exec_method
type='method'
name='start'
exec='/lib/svc/method/infonet start'
timeout_seconds='60' />
<exec_method
type='method'
name='stop'
exec='/lib/svc/method/infonet stop'
timeout_seconds='60' />
<property_group name='startd' type='framework'>
<propval name='ignore_error' type='astring'
value=SIGSEGV,SIGABRT,SIGILL,SIGQUIT,SIGSYS' />
</property_group>
<instance name='default' enabled='true'>
<property_group name='startd' type='framework'>
<propval name='ignore_error' type='astring'
value='SIGSEGV,SIGABRT,SIGILL,SIGQUIT,SIGSYS' />
</property_group>
</instance>
<template>
<common_name>
<loctext xml:lang='C'>
Production Infonet (httpd)
</loctext>
</common_name>
</template>
</service>
</service_bundle>
Also the svcprop for after it went into maintenence mode:
# svcprop infonet:default
startd/ignore_error astring SIGSEGV,SIGABRT,SIGILL,SIGQUIT,SIGSYS
general/enabled boolean true
general/single_instance boolean true
paths/entities fmri [URL removed because < 5 posts]
paths/grouping astring require_all
paths/restart_on astring error
paths/type astring path
network/entities fmri svc:/network/service
network/grouping astring require_any
network/restart_on astring error
network/type astring service
dependents/infonet_multi-user fmri svc:/milestone/multi-user
start/exec astring /lib/svc/method/infonet\ start
start/timeout_seconds count 60
start/type astring method
stop/exec astring /lib/svc/method/infonet\ stop
stop/timeout_seconds count 60
stop/type astring method
tm_common_name/C ustring Production\ Infonet\ \(httpd\)
restarter/start_pid count 972
restarter/start_method_timestamp time 1347486995.549591000
restarter/start_method_waitstatus integer 0
restarter/transient_contract count
restarter/logfile astring /var/svc/log/site-infonet:default.log
restarter/auxiliary_state astring restarting_too_quickly
restarter/next_state astring none
restarter/state astring maintenance
restarter/state_timestamp time 1347487004.979156000
restarter/contract count
restarter_actions/refresh integer