| This is what POSIX 2003 says about ps: |
| |
| By default, ps shall select all processes with the same effective user |
| ID as the current user and the same controlling terminal as the invoker |
| |
| ps [-aA][-defl][-G grouplist][-o format]...[-p proclist][-t termlist] |
| [-U userlist][-g grouplist][-n namelist][-u userlist] |
| |
| -a Write information for all processes associated with terminals. |
| Implementations may omit session leaders from this list. |
| |
| -A Write information for all processes. |
| |
| -d Write information for all processes, except session leaders. |
| |
| -e Write information for all processes. (Equivalent to -A.) |
| |
| -f Generate a full listing. (See the STDOUT section for the con- |
| tents of a full listing.) |
| |
| -g grouplist |
| Write information for processes whose session leaders are given |
| in grouplist. The application shall ensure that the grouplist is |
| a single argument in the form of a <blank> or comma-separated |
| list. |
| |
| -G grouplist |
| Write information for processes whose real group ID numbers are |
| given in grouplist. The application shall ensure that the grou- |
| plist is a single argument in the form of a <blank> or comma- |
| separated list. |
| |
| -l Generate a long listing. (See STDOUT for the contents of a long |
| listing.) |
| |
| -n namelist |
| Specify the name of an alternative system namelist file in place |
| of the default. The name of the default file and the format of a |
| namelist file are unspecified. |
| |
| -o format |
| Write information according to the format specification given in |
| format. Multiple -o options can be specified; the format speci- |
| fication shall be interpreted as the <space>-separated concate- |
| nation of all the format option-arguments. |
| |
| -p proclist |
| Write information for processes whose process ID numbers are |
| given in proclist. The application shall ensure that the pro- |
| clist is a single argument in the form of a <blank> or comma- |
| separated list. |
| |
| -t termlist |
| Write information for processes associated with terminals given |
| in termlist. The application shall ensure that the termlist is a |
| single argument in the form of a <blank> or comma-separated |
| list. Terminal identifiers shall be given in an implementation- |
| defined format. On XSI-conformant systems, they shall be |
| given in one of two forms: the device's filename (for example, |
| tty04) or, if the device's filename starts with tty, just the |
| identifier following the characters tty (for example, "04" ). |
| |
| -u userlist |
| Write information for processes whose user ID numbers or login |
| names are given in userlist. The application shall ensure that |
| the userlist is a single argument in the form of a <blank> or |
| comma-separated list. In the listing, the numerical user ID |
| shall be written unless the -f option is used, in which case the |
| login name shall be written. |
| |
| -U userlist |
| Write information for processes whose real user ID numbers or |
| login names are given in userlist. The application shall ensure |
| that the userlist is a single argument in the form of a <blank> |
| or comma-separated list. |
| |
| With the exception of -o format, all of the options shown are used to |
| select processes. If any are specified, the default list shall be |
| ignored and ps shall select the processes represented by the inclusive |
| OR of all the selection-criteria options. |
| |
| The -o option allows the output format to be specified under user con- |
| trol. |
| |
| The application shall ensure that the format specification is a list of |
| names presented as a single argument, <blank> or comma-separated. Each |
| variable has a default header. The default header can be overridden by |
| appending an equals sign and the new text of the header. The rest of |
| the characters in the argument shall be used as the header text. The |
| fields specified shall be written in the order specified on the command |
| line, and should be arranged in columns in the output. The field widths |
| shall be selected by the system to be at least as wide as the header |
| text (default or overridden value). If the header text is null, such as |
| -o user=, the field width shall be at least as wide as the default |
| header text. If all header text fields are null, no header line shall |
| be written. |
| |
| ruser The real user ID of the process. This shall be the textual user |
| ID, if it can be obtained and the field width permits, or a dec- |
| imal representation otherwise. |
| |
| user The effective user ID of the process. This shall be the textual |
| user ID, if it can be obtained and the field width permits, or a |
| decimal representation otherwise. |
| |
| rgroup The real group ID of the process. This shall be the textual |
| group ID, if it can be obtained and the field width permits, or |
| a decimal representation otherwise. |
| |
| group The effective group ID of the process. This shall be the textual |
| group ID, if it can be obtained and the field width permits, or |
| a decimal representation otherwise. |
| |
| pid The decimal value of the process ID. |
| |
| ppid The decimal value of the parent process ID. |
| |
| pgid The decimal value of the process group ID. |
| |
| pcpu The ratio of CPU time used recently to CPU time available in the |
| same period, expressed as a percentage. The meaning of |
| "recently" in this context is unspecified. The CPU time avail- |
| able is determined in an unspecified manner. |
| |
| vsz The size of the process in (virtual) memory in 1024 byte units |
| as a decimal integer. |
| |
| nice The decimal value of the nice value of the process; see nice() . |
| |
| etime In the POSIX locale, the elapsed time since the process was |
| started, in the form: [[dd-]hh:]mm:ss |
| |
| time In the POSIX locale, the cumulative CPU time of the process in |
| the form: [dd-]hh:mm:ss |
| |
| tty The name of the controlling terminal of the process (if any) in |
| the same format used by the who utility. |
| |
| comm The name of the command being executed ( argv[0] value) as a |
| string. |
| |
| args The command with all its arguments as a string. The implementa- |
| tion may truncate this value to the field width; it is implemen- |
| tation-defined whether any further truncation occurs. It is |
| unspecified whether the string represented is a version of the |
| argument list as it was passed to the command when it started, |
| or is a version of the arguments as they may have been modified |
| by the application. Applications cannot depend on being able to |
| modify their argument list and having that modification be |
| reflected in the output of ps. |
| |
| Any field need not be meaningful in all implementations. In such a case |
| a hyphen ( '-' ) should be output in place of the field value. |
| |
| Only comm and args shall be allowed to contain <blank>s; all others |
| shall not. |
| |
| The following table specifies the default header to be used in the |
| POSIX locale corresponding to each format specifier. |
| |
| Format Specifier Default Header Format Specifier Default Header |
| args COMMAND ppid PPID |
| comm COMMAND rgroup RGROUP |
| etime ELAPSED ruser RUSER |
| group GROUP time TIME |
| nice NI tty TT |
| pcpu %CPU user USER |
| pgid PGID vsz VSZ |
| pid PID |
| |
| There is no special quoting mechanism for header text. The header text |
| is the rest of the argument. If multiple header changes are needed, |
| multiple -o options can be used, such as: |
| |
| ps -o "user=User Name" -o pid=Process\ ID |