A unified, cross-platform process status
unifiedps 1.3.1 2010-02-14 NAME unifiedps -- a unified, cross-platform process status SYNOPSIS unifiedps [-<user-defined-option> [<argument1> [<argument2> ...]]] [--display-format <format>] [--display-indent <field>] [--no-display-indent <field>] [--display-header] [--no-display-header] [--display-width <width>] [--mark <field> <operator> <value> [or ...]] [--no-mark <field>] [--restrict <field> <operator> <value> [or ...]] [--no-restrict <field>] [--include <relation>] [--no-include <relation>] [--platform <platform>] [--stdin] [--version] DESCRIPTION Unifiedps displays information about running processes by wrapping and decorating the platform's native ps command in a unified way across different platforms, e.g. Mac OS X/Darwin, Linux, AIX, and HP-UX. As unifiedps supports multiple platforms, it displays only a selection of information about the processes which is available on all supported platforms. Currently, for each process, the process' id, the parent process' id, the user's name, the name of the controlling terminal, the process' cpu time, and the associated command and arguments will be shown. Unifiedps has a set of built-in options which do not correspond to the options of any platform's native ps command. All these built-in options start with two dashes. Additionally, unifiedps provides a small macro processor for defining user-defined options which may reflect options of a native ps command. User-defined options start with a single dash. Built-in options: --display-format <format> Selects the format to use for displaying the processes. Possible formats are list and tree. list selects a simple list format, while tree selects a format which displays a process' child processes in a tree-structured, hierarchical way. By default, the tree format is used. --display-indent <field> Indents the information of the given <field> according to the process' hierarchy. A <field>'s indentation-width is increased by one whitespace for each specified --display-indent option. Available <field>s are command and pid. This option is considerd by the tree display format only. --no-display-indent <field> Removes the indentation for the specified <field>. The <field> value all removes indentations for all fields. --display-header --no-display-header Does/Doesn't display a header line. --display-width <width> Specifies the number of columns to use for formatting the output. If -1 is specified as the <width>, unifiedps will use as many columns as necessary to display the processes' information. By default, the current window's width is used for formatting the output. The environment variable <COLUMNS> is used to determine the window's width. If this variable is not defined, 80 columns will be used. --mark <field> <operator> <value> [or <operator> <value> [or ...]] Marks all displayed processes which match the given criteria. If the --mark option is specified more than once then the criteria from all --mark options will be and'ed. Available <field>s are command, pid, tty, and user. Valid <operator>s are equals, contains, starts, ends and their negating counterparts nequals, ncontains, nstarts, and nends. Operators can be abbreviated with at least the first two characters, e.g. eq or co, and at least the first three characters for negating operators, e.g. neq or nco. The special <operator>s is and nis map to contains and ncontains for the command <field> and to equals and nequals for all other <field>s. For the tty <field>, no-tty is a special <value> for specifying that a controlling terminal does not exist. By default, the displayed processes of the current user are marked. This corresponds to specifying --mark user eq $USER on the command line. --no-mark <field> Removes all previously specified mark criteria for the given <field>. The <field> value all can be used to remove the mark criteria for all fields. --restrict <field> <operator> <value> [or <operator> <value> [or ...]] Restricts the displayed processes by the specified restriction criteria. The format of the option's arguments is equal to those of the --mark option. By default, only processes which belong to the current user and which are connected to a controlling terminal are displayed. --no-restrict <criterion> Removes all previously specified restriction criteria. The format of the option's arguments is equal to those of the --no-mark option. --include <relation> Includes all processes for display which are in the given <relation> to the selected processes. Possible <relation>s are parents and children. Includes are processed after restrictions, but includes qualify for marking. --no-include <relation> Removes all previously specified includes for the given type of <relation>. Use the special <relation> all to remove all includes. --platform <platform> Skips the auto-detection of the current platform and uses the supplied <platform> instead. Supported <platform>s are aix, darwin, freebsd, hpux, i5ospase, linux, macosx, and solaris. --stdin Reads the process list from STDIN instead of calling the platform's native ps command. --version Prints unifiedps' version information and exits. User-defined options: -<user-defined-option> [<argument1> [<argument2> ...]] Expands the user-defined option as defined in the user-specific configuration file ~/.unifiedpsrc. A definition of a user-defined option has the following format which must be specified within a single line: -<name> [<argument-names>] := <definition> where <name> is the name of the user-defined option, <argument-names> is an optional, whitespace-separated list of the option's argument names, and <definition> is the definition to which the option will be expanded by the macro processor. In the <definition>, an argument name 'a' can be referenced via '${a}'. During macro expansion, all argument names will be replaced by the concrete arguments which were specified at the command line. A user-defined option '-u <user>' which restricts the displayed processes to those which belong to the specified user can be defined as follows: -u user := --no-restrict user --restrict user eq ${user} A line which starts with a '#' is considered as a comment. All contigous comments in front of a user-defined option's definition are considered as the option's documentation. User-defined options configured in the packaged .unifiedpsrc file: -a --no-restrict user Displays information about the processes of all users. -aa --no-restrict user --include parents --include children Displays information about the processes of all users. Includes all parent and child processes. -A --no-restrict user --no-restrict tty Displays information about the processes of all users, even those which are not connected to a controlling terminal. -AA --no-restrict user --no-restrict tty --include parents --include children Displays information about the processes of all users, even those which are not connected to a controlling terminal. Includes all parent and child processes -AAx --no-restrict user --no-restrict tty --include parents --include children --restrict user neq root --restrict user neq nobody --restrict user neq daemon --restrict user nst _ Displays information about the processes of all users, even those which are not connected to a controlling terminal, but not those which belong to root, nobody, daemon, and those users starting with a '_'. Includes all parent and child processes -ax --no-restrict user --restrict user neq root --restrict user neq nobody --restrict user neq daemon --restrict user nst _ Displays information about the processes of all users, but not those which belong to root, nobody, daemon, and those users starting with a '_'. -aax --no-restrict user --include parents --include children --restrict user neq root --restrict user neq nobody --restrict user neq daemon --restrict user nst _ Displays information about the processes of all users, but not those which belong to root, nobody, daemon, and those users starting with a '_'. Includes all parent and child processes. -c <command> --no-restrict command --restrict command nstarts unifiedps --restrict command is <command> Displays information about the processes which contain the specified keyword in their command line. Excludes unifiedps from the set of displayed processes. -u <user> --no-restrict user --restrict user equals <user> Displays only information about those processes which belong to the specified user. -t --display-format tree --no-display-indent all --display-indent pid --display-indent command --display-indent command Uses the tree-structured display format and indents the pid and the command field -f --display-format tree --no-display-indent all --display-indent command --display-indent command Uses the tree-structured display format and indents only the command field -l --display-format list Uses the list-like display format. -w --display-width 132 Uses 132 columns to display information, instead of the default display width. -ww --display-width -1 Uses as many columns as necessary for displaying the processes' information. -x --no-restrict tty Also displays information about processes which are not connected to a controlling terminal. -p --no-display-header Displays only the processes and no header line -s --restrict command nstarts unifiedps Excludes unifiedps from the set of displayed processes -h --help Displays the help text. -v --version Shows the version information and exits. SUPPORTED PLATFORMS AIX Darwin FreeBSD HP-UX i5/OS PASE Linux Mac OS X Solaris RELEASES AND BUGS The latest release of unifiedps is always available from its web site at <http://0xc0.de/unifiedps>. Please report bugs and feature requests to <unifiedps-bugs@0xc0.de> AUTHOR Arne Harren <ah@0xc0.de>. COPYRIGHT AND LICENSE Copyright 2005-2010 by Arne Harren <ah@0xc0.de>. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. unifiedps 1.3.1 2010-02-14