Managing services on Solaris 10 is nothing like Linux. There are no /etc/init.d/ scripts, no service command, no chkconfig. Instead, Solaris uses SMF — the Service Management Facility — and everything goes through svcadm.
If you are new to Solaris, this can feel unnecessarily complicated. It is not, once you learn the pattern.
Disabling a service
You need root privileges or sudo access. The command is:
svcadm disable network/cswpuppetd:default
The argument is the service FMRI (Fault Management Resource Identifier). For Puppet installed from OpenCSW, the FMRI is network/cswpuppetd:default. The :default part refers to the default instance of the service. Some services have multiple instances, but most only have one.
Verifying the result
After disabling, check that the service is no longer running:
svcs puppet
You should see something like:
STATE STIME FMRI
disabled 16:42:31 svc:/network/cswpuppetd:default
The disabled state confirms the service is off. If you see offline instead, the service was already stopped but not permanently disabled. If you see nothing at all, the service does not exist on this system — double-check the FMRI.
Do not rely on svcs | grep puppet to tell you whether a service is disabled. That command only shows running or recently active services. A disabled service will not appear in the output, which makes grep useless for this purpose. Use svcs puppet directly instead.
Common options
svcadm disable accepts a few flags that are worth knowing:
-s — Disable synchronously. The command will not return until the service has fully stopped. Useful when you need to be sure the service is down before running the next step.
-T timeout — Set a timeout in seconds. If the service does not stop within that window, the command returns regardless. Handy when a service is stuck and you don’t want to wait indefinitely.
-t — Temporary disable. The service is stopped but can be restarted with svcadm enable. Use this for maintenance windows where you plan to re-enable the service later.
Example with timeout:
svcadm disable -T 30 network/cswpuppetd:default
Re-enabling a service
When you are done:
svcadm enable network/cswpuppetd:default
SMF will start the service and log the event. If the service fails to start, check the logs — see “Puppet logs on Solaris 10” for where to look.
Listing all services
To see everything SMF knows about:
svcs -a
This lists every service, regardless of state. Filter it with grep for the service you are interested in. The output shows the state, start time, and FMRI for each service, which is more useful than the default svcs output that only shows online services.