ACS Documentation : ACS Core Architecture Guide : Bootstrapping ACS
/web/yourservername/tcl), sourcing each file in sequence.
While this overall structure for initialization is still intact, package management has thrown a wrench into the works - there are a few extra things to do during initialization, most notably:
/packagesdirectory for new packages.
nsddaemon is executed by the
initprocess (or otherwise), AOLserver reads its configuration file and
chroots itself if necessary. It then loads shared libraries indicated in the
.inifile (e.g., the Oracle driver and
nssock), and sources Tcl module files (generally in
/home/aol30/modules/tcl). This step is, and has always been, the same for all AOLservers, regardless of whether they are running ACS.
Next AOLserver sources, in lexicographical order, each file in the
/tcl directory. The first such file is
do much directly except to determine the ACS path root (e.g.,
/web/yourservername) by trimming the final component
from the path to the Tcl library directory (
0-acs-init.tcl's has an important function, namely
/packages/acs-core/bootstrap.tcl, which does the following:
/packages/acs-core/apm-procs.tcl- no need to worry about them unless you're an ACS core hacker.
/tcldirectory has evolved quite a bit over the months and years, and a few files have come and gone. The
/www/doc/removed-files.txtfile contains a list of files which must be deleted from the AOLserver installation, at the risk of causing weird conflicts, e.g., having several security filters registered.
bootstrap.tclscans through this list, logging error messages to the log if any of these files exist.
*-procs.tclfiles in the ACS core. We source each file matching the
*-procs.tclglob in the
/packages/acs-coredirectory, in lexicographical order. These procedure are needed to perform any of the following steps.
/packagesdirectory. In each directory inside
/packages, we look for a
.infofile; if we find a package that hasn't yet been registered with the package manager (i.e., it's been copied there manually), we insert information about it into the database. (The first time ACS starts up, no packages will have been registered in the database yet, so this step will registers every single package in the
/packagesdirectory.) Note that packages discovered here are initially disabled; they must be manually enabled in the package manager before they can be used.
acs-corepackage is enabled. If the ACS core isn't initialized, the server couldn't possibly be operational, so if there's no enabled version of the ACS core we simply mark the latest installed one as enabled.
*-procs.tclfiles for enabled packages, activating their APIs.
*-init.tclfiles for enabled packages, giving packages a chance to register filters and procedures, initialize data structures, etc.
bootstrap.tclis done executing. AOLserver proceeds to source the remaining files in the
/tcldirectory (i.e., unpackaged libraries) and begins listening for connections.