The ISS system starts automatically at boot through a hook in the startup script directory /etc/rc3.d. The iss_config script creates a link from /etc/rc3.d/S99iss to /iss/etc/init.d/root.iss. The root.iss script expects to run as the root user. It runs other startup scripts required by the ISS system, including the networking setup script, network, the samba startup script, samba, and the jazdevice script. All of these scripts reside in /iss/etc/init.d. Lastly, root.iss runs the init.iss script as user iss.
The ISS system has an init.d boot entry point which needs to be hooked into the normal system startup. Here's an example:
cd /etc/rc.d/rc3.d ln -s /iss/etc/init.d/root.iss S99ziss |
The name 'S99ziss' just makes sure it gets called last, after S99local.
Also, edit /iss/etc/init.d/root.iss to skip any root modules which are not needed for the Linux installation, such as network, dtlogin, jazdevice, and autofs. The RSI license manager for IDL and the Samba module still need to run.
The root.iss script then in turn runs su as the user iss to run the rest of the ISS modules.
The init.iss script runs the startup scripts for each of the ISS sub-system modules, which expect to run as user iss, in the following order.
datastore | Start a Zebra datastore session with a background event logger. |
ingest | Start the ingest scheduler. |
archive | Start the Zebra Archiver. |
datasend | Register the crontab entry which runs the data_send script to transfer data back to ATD. |
All of the ISS startup scripts can be run individually as necessary to start, stop, and restart individual components. If a particular component has already been started, the script does nothing.
For shutdown, all of the above steps happen in reverse. In particular, the ISS root.iss hook also needs a link to a K script, probably in rc3.d, to stop the ISS subsystem when the host operating system is shutting down. The root.iss script shuts down all of the ISS modules first before shutting down the root modules in /iss/etc/init.d.