============
                             Installation
                             ============


0) PREREQUISITES
----------------

   The job daemon 'jobd' is using the GLib API to manage a hash table.
   Thus, glib2 needs to be installed.

   A Linux kernel 2.6.15-rc1 or above.



1) COMPILE THE LINUX KERNEL
---------------------------

   Connectors that reports process events to userspace are available since
   Linux 2.6.15-rc1.

   You must select at least the following kernel configuration options:

       General Setup --->
           [*] BSD Process Accounting
           [*]   BSD Process Accounting version 3 file format

       Device Drivers --->
           Connector - unified userspace <-> kernel linker --->
               <*> Connector - unified userspace <-> kernel linker
               [*]   Report process events to userspace



2) COMPILE ELSA TOOLS
---------------------

    Just type 'make install' as root in the top level directory. This command
    will perform following installation:

      - 'jobd', 'switch_fork_state' and 'jobmng' in /usr/local/sbin directory
      - 'jobmng.1.gz' in /usr/local/man/man1

    Default paths are stored in the Rules.mk in the top directory. You can
    specify your own path at compile time.

    If it doesn't work, check if all paths exist. You can specify the path
    of some headers file by using USER_INCLUDES variable. For example, if
    your kernel is at /home/guill/src/linux-2.6.15-rc2, you can compile
    tools by doing:

      # make USER_INCLUDES='-I/home/guill/src/linux-2.6.15-rc2/include'



3) INSTALL THE WEBMIN MODULE
----------------------------

    The management of the job daemon is done via a webmin module. This
    module is also used to display information about group of processes and
    accounting. The installation is done through the webmin configuration
    interface. When installing, you can access to ELSA module via the
    webmin's system interface.




                            ==============
                            HOW TO USE IT?
                            ==============



At this point you should have everything installed.

1) Start the job daemon
-----------------------

    The job daemon is started from a console and you must have root
    privileges:

        # sudo /usr/local/sbin/jobd

2) Start per-process accounting
-------------------------------

    You can enable the per-process accounting through the webmin interface
    or you can start the BSD accounting with accounting scripts. For
    example on a Fedora Core 4:

        # sudo /etc/init.d/psacct start

3) Let's play with accounting
-----------------------------

    Now everything is set to use ELSA. To add/remove a process in a group
    of processes you use the script 'jobmng' provided by ELSA. For the
    analysis you can use the script 'elsa' or you can use the webmin interface.
    You don't need root privilege to achieve this. Here is an example of what
    can be done:

    -> Run a command and add it in a group of processes:
        # jobmng -a -e ls
        This executes the command 'ls' and adds it in a new group of processes.
        After the execution, a new job (job #1 if it's the first usage) is
        created and it contains 'ls'.

    -> Run another command in the same job:
        # jobmng -a -e date -j 1
        This executes the command 'date' and adds it in the job #1.

    -> Add the process 1234 in a new job:
        # jobmng -a -p 1234
        Process 1234 is added in a new job (#2). It means that all its children
        will belong to job #2.

    You can see results of the command with the webmin interface. You can also
    use the script 'elsa' to analyze data.