pc is a small daemon for managing processes based on memory, CPU and time usage.
Version: 0.3-2008-04-02pc is a small daemon for managing processes based on memory, CPU and time usage.
License: GPL v3
Operating System: Linux
System administrators can specify the names of 'supect ' processes to be managed. These can be user applications which need to be managed into equitably sharing resources or buggy applications that can sometimes make a grab at all available CPU or memory (Versions of a number of Internet browsers come to mind). A typical environment for using pc is on a multiuser server with large numbers of users using many programs that need to be kept from grabbing an 'unfair' proportion of resources.
An administrator can specify the maximum CPU and memory (as percents) and time (as seconds) that a process is allowed. She can also specify what to do when each of these constraints is violated -- do nothing; kill the process; renice the process (in the case of CPU over-subscription).
pc is released under the terms of the GNU General Public License, version 3.0. Please read the file LICENSE.txt in the docs directory of the archive for further information.
Download the compressed archive to some directory on your machine. This should leave you with a file pc.tar.bz2 in your working directory.
In the download directory decompress and unarchive the bzip'd tarfile.
your-server# tar -jxvf pc.tar.bz2
Now you will have a directory 'pc'.
Change directory into pc.
your-server# cd pc
Issue the commmands 'make' followed by 'make install'. You should end up with the binary file pc in /usr/sbin and the configuration file, pc.conf, in /etc.
Now you will have to edit the configuration file and put in values consistent with your system. Read the man pages, Administrator's Guide and the confguration file for recommendations.
pc is invoked manually or from a script by simply running the command 'pc'. The program reads all configuration information from a (readily readable by humans) configuration file (pc.conf) located in /etc. pc should be run from rc.local or the init.d scripts in a production environment.
Under normal operations no input or output is expected. However the administrator can force a rereading of the configuration file after editing it by issuing a SIGHUP signal.
your-server# killall -HUP pc
A limited set of output reports can be dumped to the log file using signals:
The list of suspect can be dumped to the log file with a SIGUSR1 signal and
a list (and count) of all processes in memory can be output to the log file with a SIGUSR2 signal.
See the Administrator's Guide for further details.
What's New in This Release:
· Much more extensive error checking on input values.
· More attention to the assignment of 'reasonable' default operating parameters for the program when configuration errors are found.
· Better logging of input errors and assigned defaults.
· The man pages and administrative guide are updated to reflect changes.