The simplest way to start and stop and OpenACS site is to run
+the startup shell script provided, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run
.
+This runs as a regular task, and logs to the logfile. To stop the
+site, kill the script.
A more stable way to run OpenACS is with a "keepalive" +mechanism of some sort, so that whenever the server halts or is +stopped for a reset, it restarts automatically. This is recommended +for development and production servers.
The Reference Platform uses Daemontools to control AOLserver. A
+simpler method, using init
, is
+here.
Daemontools must already be installed. If not, install it.
Each service controlled by daemontools must have a directory in
+/service
. That directory must
+have a file called run
. It
+works like this:
The init
program starts
+every time the computer is booted.
A line in init
's
+configuration file, /etc/inittab
, tells init to run, and to
+restart if necessary, svscanboot
.
+svscanboot
checks the
+directory /service
every few
+seconds.
If it sees a subdirectory there, it looks for a file in the
+subdirectory called run
. If it
+finds a run file, it creates a supervise
process
+supervise
executes the run
+script. Whenever the run script stops, supervise
executes it again. It also
+creates additional control files in the same directory.
Hence, the AOLserver instance for your development server is
+started by the file /service/$OPENACS_SERVICE_NAME/run
. But we
+use a symlink to make it easier to add and remove stuff from the
+/service
, so the actual
+location is /var/lib/aolserver/$OPENACS_SERVICE_NAMEetc/daemontools/run
.
Daemontools creates additional files and directories to track
+status and log. A daemontools directory is included in the OpenACS
+tarball at /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools
.
+To use it, first ill any existing AOLserver instances. As root,
+link the daemontools
directory
+into the /service
directory.
+Daemontools' svscan
process
+checks this directory every five seconds, and will quickly execute
+run
.
+[$OPENACS_SERVICE_NAME etc]$killall nsd
+nsd: no process killed +[$OPENACS_SERVICE_NAME etc]$emacs /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run
+[$OPENACS_SERVICE_NAME etc]$exit
+ +[root root]#ln -s /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/ /service/$OPENACS_SERVICE_NAME +
+
Verify that AOLserver is running.
+[root root]# ps -auxw | grep nsd
$OPENACS_SERVICE_NAME 5562 14.4 6.2 22436 15952 ? S 11:55 0:04 /usr/local/aolserver/bin/nsd -it /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl -u serve
+root 5582 0.0 0.2 3276 628 pts/0 S 11:55 0:00 grep nsd
+[root root]#
+
+The user $OPENACS_SERVICE_NAME can now control +the service $OPENACS_SERVICE_NAME with these +commands:
+svc -d /service/$OPENACS_SERVICE_NAME
+
- Bring
+the server down
+svc -u /service/$OPENACS_SERVICE_NAME
+
- Start
+the server up and leave it in keepalive mode.
+svc -o /service/$OPENACS_SERVICE_NAME
+
- Start
+the server up once. Do not restart it if it stops.
+svc -t /service/$OPENACS_SERVICE_NAME
+
- Stop and
+immediately restart the server.
+svc -k /service/$OPENACS_SERVICE_NAME
+
- Sends
+the server a KILL signal. This is like KILL -9. AOLserver exits
+immediately. If svc -t fails to fully kill AOLserver, use this
+option. This does not take the server out of keepalive mode, so it
+should still bounce back up immediately.
Install a script to automate the stopping and starting of
+AOLserver services via daemontools. You can then restart a service
+via restart-aolserver $OPENACS_SERVICE_NAME
+
+
+[root root]#+cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/restart-aolserver-daemontools.txt /usr/local/bin/restart-aolserver
+[root root]#chmod 755 /usr/local/bin/restart-aolserver
+[root root]# +
At this point, these commands will work only for the
+root
user. Grant permission for
+the web
group to use
+svc
commands on the
+$OPENACS_SERVICE_NAME
+server.
+[root root]# /usr/local/bin/svgroup web /service/$OPENACS_SERVICE_NAME
+
+[root root]#
+
+Verify that the controls work. You may want to tail -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME-error.log
+in another window, so you can see what happens when you type these
+commands.
More information can be found on the AOLserver Daemontools page.
+Table 6.1. How it +Works
Program | Invoked by this program ... | ... using this file | Where to find errors | Log goes to | Use these commands to control it | +
---|---|---|---|---|---|
svscanboot | init | /etc/inittab | ps -auxw | grep readproctitle | n/a | + |
aolserver | supervise (a child of svscanboot) | /service/$OPENACS_SERVICE_NAME/run | /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/error.log | /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME.log | svc -k /service/$OPENACS_SERVICE_NAME + | +
postgresql | Redhat init scripts during boot | /etc/init.d/postgresql | /usr/local/pgsql/data/server.log | service postgresql start (Red Hat), +/etc/init.d/postgresql start (Debian) | +