In Solaris 10, Sun decided to change a lot of things. One of them is the location of init scripts. Now /etc/rc?.d/script and /etc/init.d/script is no longer valid for most of the services.
Sun  changed all these "legacy" paths in order to perform faster boot process, as many init scripts can now initialized in parallel and introduces the Service Management Framework.
SMF (The Service Management Framework) is Solaris 10’s replacement for the aged sysV init.

At last in Solaris 10 there is a tool to administer init scripts. Actually you should check these commands for that:


  •     svcs
  •     svcsadm
  •     svccfg
  •     svcprop




For example:

svcs {lists summary of all}
svcs -l SERVICE {details on one service}

To enable / disable a service:


# svcadm enable sendmail  
# svcadm disable sendmail


Init scripts/services have XML files under /var/svc/manifest/ (ex./var/svc/manifest/network/ssh.XML), in where are a lot of attributes (like process monitoring etc.). Actual init scripts are under /lib/svc/method/, so if you want to upgrade ssh you must do necessary changes in /lib/svc/method/sshd.

One thing that needs attention is a new feature that services have, monitoring. Now if you kill for example sendmail process, after a while sendmail will be started again. That means that if you want to make some changes in sendmail and have the process down for some reason, you must do these:


# svcadm disable sendmail

Make changes.


# svcadm enable sendmail