Oracle Documentation
Managing Services.
From www.oracle.com:
Predictive Self-Healing in the Solaris 10 Operating System -- Delivering Relentless Availability
White Paper, Predictive Self-Healing in the Solaris 10 Operating System.
Predictive Self-Healing Knowledge Article Web (Fujitsu).
Service Management Facility How To Guide
SMF Manifest How To Guide
From Sun BluePrints:
From the Sun BluePrint program, Restricting Service Administration in the Solaris 10 Operating System.
This Sun Blue Prints cookbook, Limiting Service Priviledges in the Solaris 10 Operating System, describes how to use SMF start a service with reduced priviledges.
Bloggers:
Sun SMF/ Predictive Self Healing engineer, Tobin Coziahr's blog Notes from an insomniac engineer.
Liane Praza's blog smf(5) and fault isolation on Solaris 10 and assembling services for boot with smf(5).
Chad Mynhier's Weblog, "To timidly go where many have gone before" Process contracts in Solaris 10.
smf(5): Manifest destiny, Round One from Stephen Hahn's Blog.
Bespoke services: application/vncserver a manifest for VNCserver from Stephen Hahn's Blog.
From OpenSolaris.org:
Mike Shapiro's slide presentation to the OpenSolaris Users Group, Solaris 10 Predicitive Self-Healing: Fault Management.
OpenSolaris Community: Fault Manangement with Fault Management information.
This flash demo shows Self Healing with ZFS.
Opensolaris.org has a number of public mailing lists called 'discussions', covering a variety of subjects. Use this link to sign up to the SMF discussion.
Converted services: manifests and methods.
From BigAdmin:
BigAdmin System Administration Portal feature article Predictive Self-Healing.
From the BigAdmin Wiki SMF Short Cuts
Other Resources:
Instructor Darren Hochs' Enabling TCP Wrappers and TCP Tracing in Solaris 10.
Dependency Script. Lists online service, its dependencies and dependents.
Migrating a Legacy RC service, PDF Slide Presentation.
O'Reilly SysAsmin, Using Solaris SMF, SMF tutorial.
Predictive Self-Healing (Fujitsu).
Lab Helpers
This file is the test manifest used in the lab. (HTML/docs/test.txt) This is the same file with comments.
This is the run.boot.script for the lab.
These are the dependency demonstration manifest XML files, the first does not have a dependency/dependent statement, the second does. This script is the boot.script referenced in the XML manifest.
Enabling or Disabling services during jumpstart.
Create a site.xml file that reflect the services you want enabled or disabled, and drop it into /a/var/svc/profile/site.xml from a finish script. It will be imported automatically on the first reboot.
Example site.xml file to disable Sendmail.
<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='profile' name='default'>
<!-- sendmail -->
<service name='network/smtp' version='1' type='service'>
<instance name='sendmail' enabled='false'/>
</service>
</service_bundle>
Changing options for a inetd
controlled service.
Find the service.
chaos:/>
svcs ftp
STATE
STIME FMRI
online
12:49:06 svc:/network/ftp:default
chaos:/>
svcs -l ftp
fmri
svc:/network/ftp:default
name
FTBR server
enabled
true
state
online
next_state
none
state_time
Thu Apr 21 12:49:06 2005
restarter
svc:/network/inetd:default
contract_id
Display current settings.
(tcp_trace)
chaos:/>
inetadm -l ftp
SCOPE
NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a"
user="root"
default
bind_addr=""
default
bind_fail_max=-1
default
bind_fail_interval=-1
default
max_con_rate=-1
default
max_copies=-1
default
con_rate_offline=-1
default
failrate_cnt=40
default
failrate_interval=60
default
inherit_env=TRUE
default
tcp_trace=FALSE
default
tcp_wrappers=FALSE
Enable TCP tracing for a service. (FTP)
chaos:/>
inetadm -m ftp tcp_trace=true
chaos:/>
inetadm -l ftp
SCOPE
NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a"
user="root"
default
bind_addr=""
default
bind_fail_max=-1
default
bind_fail_interval=-1
default
max_con_rate=-1
default
max_copies=-1
default
con_rate_offline=-1
default
failrate_cnt=40
default
failrate_interval=60
default
inherit_env=TRUE
tcp_trace=TRUE
default
tcp_wrappers=FALSE
Disable tcp tracing for a service.
(FTP)
chaos:/>
inetadm -m ftp tcp_trace=
chaos:/>
inetadm -l ftp
SCOPE
NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a"
user="root"
default
bind_addr=""
default
bind_fail_max=-1
default
bind_fail_interval=-1
default
max_con_rate=-1
default
max_copies=-1
default
con_rate_offline=-1
default
failrate_cnt=40
default
failrate_interval=60
default
inherit_env=TRUE
default
tcp_trace=FALSE
default
tcp_wrappers=FALSE
Enable tcp_wrappers for all inetd
services.
chaos:/>
inetadm -M tcp_wrappers=true
chaos:/>
inetadm -l telnet
SCOPE
NAME=VALUE
name="telnet"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.telnetd"
user="root"
default
bind_addr=""
default
bind_fail_max=-1
default
bind_fail_interval=-1
default
max_con_rate=-1
default
max_copies=-1
default
con_rate_offline=-1
default
failrate_cnt=40
default
failrate_interval=60
default
inherit_env=TRUE
default
tcp_trace=FALSE
default
tcp_wrappers=TRUE
Disable tcp_wrappers for all
services.
chaos:/>
inetadm -M tcp_wrappers=false
chaos:/>
inetadm -l telnet
SCOPE
NAME=VALUE
name="telnet"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.telnetd"
user="root"
default
bind_addr=""
default
bind_fail_max=-1
default
bind_fail_interval=-1
default
max_con_rate=-1
default
max_copies=-1
default
con_rate_offline=-1
default
failrate_cnt=40
default
failrate_interval=60
default
inherit_env=TRUE
default
tcp_trace=FALSE
default
tcp_wrappers=FALSE