From owner-pagg@oss.sgi.com Wed Mar 7 08:50:16 2001 Received: by oss.sgi.com id ; Wed, 7 Mar 2001 08:49:57 -0800 Received: from deliverator.sgi.com ([204.94.214.10]:42608 "EHLO deliverator.sgi.com") by oss.sgi.com with ESMTP id ; Wed, 7 Mar 2001 08:49:34 -0800 Received: from zeus-fddi.americas.sgi.com (zeus-fddi.americas.sgi.com [128.162.8.103]) by deliverator.sgi.com (980309.SGI.8.8.8-aspam-6.2/980310.SGI-aspam) via ESMTP id IAA05445 for ; Wed, 7 Mar 2001 08:48:27 -0800 (PST) mail_from (watters@sgi.com) Received: from tulip-e185.americas.sgi.com (tulip.americas.sgi.com [128.162.185.208]) by zeus-fddi.americas.sgi.com (8.9.3/americas-smart-nospam1.1) with ESMTP id KAA1050637 for ; Wed, 7 Mar 2001 10:48:17 -0600 (CST) Received: from sgi.com (watters@paradox.americas.sgi.com [128.162.195.127]) by tulip-e185.americas.sgi.com (980427.SGI.8.8.8/SGI-server-1.7) with ESMTP id KAA68994 for ; Wed, 7 Mar 2001 10:48:17 -0600 (CST) Message-ID: <3AA6664E.192A1248@sgi.com> Date: Wed, 07 Mar 2001 10:48:14 -0600 From: Sam Watters Organization: SGI X-Mailer: Mozilla 4.72 [en] (X11; U; Linux 2.2.16-4SGI_29 i586) X-Accept-Language: en MIME-Version: 1.0 To: pagg@oss.sgi.com Subject: Linux PAGG & Jobs: New patches & packages Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pagg@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pagg-outgoing 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 commands/man-pages/config-files. You can pick up the new bits at: ftp://oss.sgi.com/projects/pagg/download 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 kernel, 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 options. 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.) KERNEL PATCH INSTALLATION ========================= 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: CONFIG_PAGG=(y|n) CONFIG_PAGG_JOB=(y|m|n) via menuconfig or xconfig: "General setup"->"Support for process aggregates (PAGGs)" "General setup"->" Process aggregate based jobs" 3. Build a new kernel NOTES: 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 software (PAM/commands/docs) yourself using the tarball. For RPM installation, see the "RPM INSTALLATION" section. If you want to build the the user software yourself, proceed to the "SOURCE INSTALLATION" section. RPM INSTALLATION ================ 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 documents (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 the same. It was build using v3 RPM. It should install correctly when using either the v3 or v4 RPM tool. 3. Proceed to the section labeled "SETUP". SOURCE INSTALLATION =================== 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 i386. 3. Install the commands, PAM module, man pages, and package documents (you must have root privilege to install to perform the installation.) 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". 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/pam_job.so 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 management module level. Whenever possible, it is best to use session management. However, if a particular service, such as ftp, does not invoke session modules you can use the account management feature. When using the account management feature, you should specify the pam_job.so module as the last acct entry. Such an entry would appear as follows: acct optional /lib/security/pam_job.so 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 the 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 the 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 must do this manually. The chkconfig variable will determine if the Linux Job kernel feature is initialized (and loaded if it is a loadable module). 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 commands and manual pages. FILES ===== 1. libraries/modules: /lib/security/pagg_job.so -- PAM session module 2. header files: /usr/include/paggctl.h -- To include for paggctl system call (NEW) 3. command files: /usr/local/bin/jkill -- command to signal job processes /usr/local/bin/jstat -- command to get job status information /usr/local/bin/jwait -- command to wait on job completion /usr/local/bin/jsethid -- Set the hid segement for jid generation /usr/local/bin/jdetach -- Detach process(es) from a job 4. man pages: /usr/local/man/man1/jkill.1 /usr/local/man/man1/jstat.1 /usr/local/man/man1/jwait.1 /usr/local/man/man3/paggctl.3 /usr/local/man/man3/job_paggctl.3 /usr/local/man/man7/job.7 /usr/local/man/man8/jdetach.8 /usr/local/man/man8/jsethid.8 THE END ======= Sam Watters SGI -- Sam Watters Resource Mgmt Team SGI watters@sgi.com