[Top] [All Lists]

Linux PAGG & Jobs: New patches & packages

To: pagg@xxxxxxxxxxx
Subject: Linux PAGG & Jobs: New patches & packages
From: Sam Watters <watters@xxxxxxx>
Date: Wed, 07 Mar 2001 10:48:14 -0600
Organization: SGI
Sender: owner-pagg@xxxxxxxxxxx
I have put out some new patches for Linux Process Aggregates (PAGG) and
Linux Jobs.  Also, I have produced a new package release of the

You can pick up the new bits at:

The new files are:

        README-2                        The README file (install info)
        job-1.0.0-2.src.rpm             The source rpm file (i386 & ia64)
        job-1.0.0-2.i386.rpm            The i386 commands package
        job-1.0.0-2.ia64.rpm            The ia64 commands package
        linux-2.4.2-pagg.patch          The PAGG patch (apply first)
        linux-2.4.2-pagg-job.patch      The Job patch (apply second)

What is new...

Version 1.0.0 of Linux Jobs is released. The kernel patches have been 
updated - now the loadable kernel module can be built into the the
or it can be modularized.                                           
The kernel module source now resides in linux/drivers/misc.  The options 
for building the module are included in the linux config
The Linux Jobs user commands, PAM module and man pages are now available 
as an RPM package for both i386 and ia64 systems.  Two new commands were 
added: jsethid and jdetach.  The jsethid command is a configuration
command, normally used by startup scripts.  The jdetach command is an
administrative command, allowing root to detach processes from jobs - 
handy when you accidentally start a daemon process from within a job.

The README-2 file is attached:

Linux Jobs v1.0.0                               February 15, 2001       

The following packages and tarballs are required to set up a system to
use Linux jobs.  The  Job commands and PAM modules have compile time
dependencies upon the pagg and the pagg-job feature patches for the
kernel.  So, you will need to first read the "KERNEL PATCH INSTALLATION"
section before proceeding.

(There are various 2.4 patches available, so we refer to the kernels
using 2.4.#, where the # character represents the specific patchlevel
of the kernel.)


The kernel must have been patched using the pagg and pagg-job
linux kernel patches.  These patches can be downloaded from

        linux-2.4.#-pagg.patch          PAGG kernel patch (apply first)
        linux-2.4.#-pagg-job.patch      Job kernel patch (apply second)

1. Apply the kernel patch to a Linux 2.4.# kernel. For example:

        cd /usr/src/linux
        patch -p1 < /tmp/linux-2.4.#-pagg.patch
        patch -p1 < /tmp/linux-2.4.#-pagg-job.patch

2. Configure the kernel to include the appropriate support:

   The config variables:

   via menuconfig or xconfig:

        "General setup"->"Support for process aggregates (PAGGs)"
        "General setup"->"   Process aggregate based jobs"

3. Build a new kernel 


        In this example we use the build directory of
        /usr/src/linux.  Often there are links in /usr/include
        that point to directories in /usr/src/linux.  In addition,
        /usr/src/linux is usually a link to the source for the
        kernel that is running.  This ensures that you will have
        the same include files available as were used to build
        the kernel.

        So, you will want to ensure that /usr/src/linux is
        redirected to reference the source directory for your
        new kernel before you attempt the next step.

4. Decide if you want to install the RPM files or build the user
   (PAM/commands/docs) yourself using the tarball.  For RPM
   see the "RPM INSTALLATION" section.  If you want to build the the
   software yourself, proceed to the "SOURCE INSTALLATION" section.


1. To install the PAM module, user commands, manual pages, and job-1.0.0
   package documents:

    a. i386 systems:

        rpm -i job-1.0.0-1.i386.rpm

    b. ia64 systems:

        rpm -i job-1.0.0-1.ia64.rpm

2. To install the source code RPM that contains a copy of the source
   for the PAM module, user commands, manual pages, and package
   (i386 and ia64 systems):

        rpm -i job-1.0.0-1.src.rpm

   NOTE:  The source code for the i386 package and the ia64 package is
   same. It was build using v3 RPM.  It should install correctly when
   either the v3 or v4 RPM tool. 

3. Proceed to the section labeled "SETUP".


1. Unpack the source.

        tar zxvf job-1.0.0-1.tar.gz

2. Build the commands, libraries and PAM module.

        cd job-1.0.0
        make ARCH=i386          (set ARCH=ia64 for ia64 systems)

   If the ARCH paramter is not specified, the build will default to

3. Install the commands, PAM module, man pages, and package documents
   (you must have root privilege to install to perform the

    a. Install relative to root "/" directory:

        make install

    b. Install reletive to an arbitrary directory:

        make INSTDIR=$YOUR_CHOICE install

4. Proceed to the section labeled "SETUP".


1. Edit the PAM configuration files to enable job creation:

        cd /etc/pam.d   (directory where PAM config files reside)
        su root         (if not already root)
        vi login        (to enable job creation for logins)

   While editing the login configuration file, the following line would
   be added:

        session    optional     /lib/security/

   It is suggested that the creation of jobs via PAM be listed as an
   optional operation until such time as you feel comfortable with
   their operation.  Then you can change 'optional' to 'required'.

   This example shows the 'login' configuration file being changed.
   You will need to add the session line to all of the PAM entry points
   that you want to have create jobs.  For example: gdm, kde, login,
   rlogin, rsh, su, and xdm are currently set on my system.

   Not all services use session management.  As a result, the PAM job
   module also has the capability to create jobs at the account
   module level.  Whenever possible, it is best to use session
   However, if a particular service, such as ftp, does not invoke
   modules you can use the account management feature.  When using the
   account management feature, you should specify the module
   as the last acct entry.  Such an entry would appear as follows:

        acct      optional      /lib/security/

   The only service I have encountered that does not use session
   management modules is ftp.  

   What are the differences between using the session entry point and
   the account management entry point?  When using the session entry
   point, the creation of the job is recorded via syslog.  Also, when
   point-of-entry process (the one that caused the creation of the job)
   exits, another notice is posted via syslog.  These syslog entries
   provide another history mechanism for tracking the status of a job.
   When using the account management entry point, a message concerning
   creation of the job is reported via syslog.  However, no additional
   messages concerning exit notification for the point-of-entry process
   are recorded.

2. If you installed the RPM package, the chkconfig variable "job" was
   created for you.  If you went through the SOURCE INSTALLATION, you
   do this manually.  The chkconfig variable will determine if the Linux
   Job kernel feature is initialized (and loaded if it is a loadable

   This operation must be done as root (SOURCE INSTALLATION ONLY):

        chkconfig --add job

3. Reboot the system with the new kernel.

4. Now, when a user gains access to the system through a PAM entry point 
   that is configured, a new job should be created to contain all the 
   processes for that user.

5. The job-1.0.0 package user commands are installed in /usr/local/bin
   and the manual pages are installed into /usr/local/man (by default).
   Those directories must be in your PATH and MANPATH to access the
   and manual pages.


1. libraries/modules:

   /lib/security/       -- PAM session module

2. header files:

   /usr/include/paggctl.h          -- To include for paggctl system call

3. command files:

   /usr/local/bin/jkill            -- command to signal job processes
   /usr/local/bin/jstat            -- command to get job status
   /usr/local/bin/jwait            -- command to wait on job completion
   /usr/local/bin/jsethid          -- Set the hid segement for jid
   /usr/local/bin/jdetach          -- Detach process(es) from a job

4. man pages:



   Sam Watters  <watters@xxxxxxx>

Sam Watters     Resource Mgmt Team      SGI     watters@xxxxxxx

<Prev in Thread] Current Thread [Next in Thread>
  • Linux PAGG & Jobs: New patches & packages, Sam Watters <=