Index: openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.adp 7 Aug 2017 23:47:50 -0000 1.2 @@ -0,0 +1,141 @@ + +{/doc/acs-core-docs {ACS Core Documentation}} {Starting and Stopping an OpenACS instance.} +Starting and Stopping an OpenACS instance. + + +
+

+Starting and Stopping an OpenACS +instance.

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.

    +
  1. Daemontools must already be installed. If not, install it.

  2. +

    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]#
    +
    +
  3. +

    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.

    • +
    +
  4. +

    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]#
    +
    +
  5. +

    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]#
    +
    +
  6. +

    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.

    +
  7. +
+

Table 6.1. How it +Works

+++ + + + + + + + + + + +
ProgramInvoked by this program ...... using this fileWhere to find errorsLog goes toUse these commands to control it
svscanbootinit/etc/inittabps -auxw | grep readproctitlen/a 
aolserversupervise (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.logsvc -k /service/$OPENACS_SERVICE_NAME +
postgresqlRedhat 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)
+

+
+ + \ No newline at end of file