Using Run Control Scripts

How to Use a Run Control Script to Stop or Start a Legacy Service

One advantage of having individual scripts for each run level is that you can run scripts in the /etc/init.d directory individually to stop system services without changing a system's run level.

  1. Become superuser or assume a role that includes the Service Management rights profile.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC in System Administration Guide: Security Services .

  2. Stop the system service.

    # /etc/init.d/
    filename stop
    
  3. Restart the system service.

    # /etc/init.d/
    filename start
    
  4. Verify that the service has been stopped or started.

    # pgrep -f service
    

Example 15.15. Using a Run Control Script to Stop or Start a Service

For example, you can stop the NFS server daemons by typing the following:

# /etc/init.d/nfs.server stop
# pgrep -f nfs

Then, you can restart the NFS server daemons by typing the following:

# /etc/init.d/nfs.server start
# pgrep -f nfs
101773
101750
102053
101748
101793
102114
# pgrep -f nfs -d, | xargs ps -fp
     UID    PID   PPID   C    STIME TTY         TIME CMD
  daemon 101748      1   0   Sep 01 ?           0:06 /usr/lib/nfs/nfsmapid
  daemon 101750      1   0   Sep 01 ?          26:27 /usr/lib/nfs/lockd
  daemon 101773      1   0   Sep 01 ?           5:27 /usr/lib/nfs/statd
    root 101793      1   0   Sep 01 ?          19:42 /usr/lib/nfs/mountd
  daemon 102053      1   0   Sep 01 ?        2270:37 /usr/lib/nfs/nfsd
  daemon 102114      1   0   Sep 01 ?           0:35 /usr/lib/nfs/nfs4cbd

How to Add a Run Control Script

If you want to add a run control script to start and stop a service, copy the script into the /etc/init.d directory. Then, create links in the rc n .d directory where you want the service to start and stop.

See the README file in each /etc/rc n .d directory for more information on naming run control scripts. The following procedure describes how to add a run control script.

  1. Become superuser or assume a role that includes the Service Management rights profile.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC in System Administration Guide: Security Services .

  2. Add the script to the /etc/init.d directory.

    # cp filename /etc/init.d
    # chmod 0744 /etc/init.d/
    filename
    # chown root:sys /etc/init.d/
    filename
    
  3. Create links to the appropriate rc n .d directory.

    # cd /etc/init.d
    # ln filename /etc/rc2.d/
    Snnfilename
    # ln filename /etc/rc
    n
    .d/
    Knnfilename
    
  4. Verify that the script has links in the specified directories.

    # ls /etc/init.d/*filename
     /etc/rc2.d/*filename
     /etc/rc
    n
    .d/*filename
    
    

Example 15.16. Adding a Run Control Script

The following example shows how to add a run control script for the xyz service.

# cp xyz /etc/init.d
# chmod 0744 /etc/init.d/xyz
# chown root:sys /etc/init.d/xyz
# cd /etc/init.d
# ln xyz /etc/rc2.d/S99xyz
# ln xyz /etc/rc0.d/K99xyz
# ls /etc/init.d/*xyz /etc/rc2.d/*xyz /etc/rc0.d/*xyz

How to Disable a Run Control Script

You can disable a run control script by renaming it with an underscore (_) at the beginning of the file name. Files that begin with an underscore or dot are not executed. If you copy a file by adding a suffix to it, both files will be run.

  1. Become superuser or assume a role that includes the Service Management rights profile.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC in System Administration Guide: Security Services .

  2. Rename the script by adding an underscore (_) to the beginning of the new file.

    # cd /etc/rc
    n
    .d
    # mv filename _filename
    
  3. Verify that the script has been renamed.

    # ls _*
    _filename
    

Example 15.17. Disabling a Run Control Script

The following example shows how to rename the S99datainit script.

# cd /etc/rc2.d
# mv S99datainit _S99datainit
# ls _*
_S99datainit