| 1 | This is what POSIX 2003 says about ps: |
|---|
| 2 | |
|---|
| 3 | By default, ps shall select all processes with the same effective user |
|---|
| 4 | ID as the current user and the same controlling terminal as the invoker |
|---|
| 5 | |
|---|
| 6 | ps [-aA][-defl][-G grouplist][-o format]...[-p proclist][-t termlist] |
|---|
| 7 | [-U userlist][-g grouplist][-n namelist][-u userlist] |
|---|
| 8 | |
|---|
| 9 | -a Write information for all processes associated with terminals. |
|---|
| 10 | Implementations may omit session leaders from this list. |
|---|
| 11 | |
|---|
| 12 | -A Write information for all processes. |
|---|
| 13 | |
|---|
| 14 | -d Write information for all processes, except session leaders. |
|---|
| 15 | |
|---|
| 16 | -e Write information for all processes. (Equivalent to -A.) |
|---|
| 17 | |
|---|
| 18 | -f Generate a full listing. (See the STDOUT section for the con- |
|---|
| 19 | tents of a full listing.) |
|---|
| 20 | |
|---|
| 21 | -g grouplist |
|---|
| 22 | Write information for processes whose session leaders are given |
|---|
| 23 | in grouplist. The application shall ensure that the grouplist is |
|---|
| 24 | a single argument in the form of a <blank> or comma-separated |
|---|
| 25 | list. |
|---|
| 26 | |
|---|
| 27 | -G grouplist |
|---|
| 28 | Write information for processes whose real group ID numbers are |
|---|
| 29 | given in grouplist. The application shall ensure that the grou- |
|---|
| 30 | plist is a single argument in the form of a <blank> or comma- |
|---|
| 31 | separated list. |
|---|
| 32 | |
|---|
| 33 | -l Generate a long listing. (See STDOUT for the contents of a long |
|---|
| 34 | listing.) |
|---|
| 35 | |
|---|
| 36 | -n namelist |
|---|
| 37 | Specify the name of an alternative system namelist file in place |
|---|
| 38 | of the default. The name of the default file and the format of a |
|---|
| 39 | namelist file are unspecified. |
|---|
| 40 | |
|---|
| 41 | -o format |
|---|
| 42 | Write information according to the format specification given in |
|---|
| 43 | format. Multiple -o options can be specified; the format speci- |
|---|
| 44 | fication shall be interpreted as the <space>-separated concate- |
|---|
| 45 | nation of all the format option-arguments. |
|---|
| 46 | |
|---|
| 47 | -p proclist |
|---|
| 48 | Write information for processes whose process ID numbers are |
|---|
| 49 | given in proclist. The application shall ensure that the pro- |
|---|
| 50 | clist is a single argument in the form of a <blank> or comma- |
|---|
| 51 | separated list. |
|---|
| 52 | |
|---|
| 53 | -t termlist |
|---|
| 54 | Write information for processes associated with terminals given |
|---|
| 55 | in termlist. The application shall ensure that the termlist is a |
|---|
| 56 | single argument in the form of a <blank> or comma-separated |
|---|
| 57 | list. Terminal identifiers shall be given in an implementation- |
|---|
| 58 | defined format. On XSI-conformant systems, they shall be |
|---|
| 59 | given in one of two forms: the device's filename (for example, |
|---|
| 60 | tty04) or, if the device's filename starts with tty, just the |
|---|
| 61 | identifier following the characters tty (for example, "04" ). |
|---|
| 62 | |
|---|
| 63 | -u userlist |
|---|
| 64 | Write information for processes whose user ID numbers or login |
|---|
| 65 | names are given in userlist. The application shall ensure that |
|---|
| 66 | the userlist is a single argument in the form of a <blank> or |
|---|
| 67 | comma-separated list. In the listing, the numerical user ID |
|---|
| 68 | shall be written unless the -f option is used, in which case the |
|---|
| 69 | login name shall be written. |
|---|
| 70 | |
|---|
| 71 | -U userlist |
|---|
| 72 | Write information for processes whose real user ID numbers or |
|---|
| 73 | login names are given in userlist. The application shall ensure |
|---|
| 74 | that the userlist is a single argument in the form of a <blank> |
|---|
| 75 | or comma-separated list. |
|---|
| 76 | |
|---|
| 77 | With the exception of -o format, all of the options shown are used to |
|---|
| 78 | select processes. If any are specified, the default list shall be |
|---|
| 79 | ignored and ps shall select the processes represented by the inclusive |
|---|
| 80 | OR of all the selection-criteria options. |
|---|
| 81 | |
|---|
| 82 | The -o option allows the output format to be specified under user con- |
|---|
| 83 | trol. |
|---|
| 84 | |
|---|
| 85 | The application shall ensure that the format specification is a list of |
|---|
| 86 | names presented as a single argument, <blank> or comma-separated. Each |
|---|
| 87 | variable has a default header. The default header can be overridden by |
|---|
| 88 | appending an equals sign and the new text of the header. The rest of |
|---|
| 89 | the characters in the argument shall be used as the header text. The |
|---|
| 90 | fields specified shall be written in the order specified on the command |
|---|
| 91 | line, and should be arranged in columns in the output. The field widths |
|---|
| 92 | shall be selected by the system to be at least as wide as the header |
|---|
| 93 | text (default or overridden value). If the header text is null, such as |
|---|
| 94 | -o user=, the field width shall be at least as wide as the default |
|---|
| 95 | header text. If all header text fields are null, no header line shall |
|---|
| 96 | be written. |
|---|
| 97 | |
|---|
| 98 | ruser The real user ID of the process. This shall be the textual user |
|---|
| 99 | ID, if it can be obtained and the field width permits, or a dec- |
|---|
| 100 | imal representation otherwise. |
|---|
| 101 | |
|---|
| 102 | user The effective user ID of the process. This shall be the textual |
|---|
| 103 | user ID, if it can be obtained and the field width permits, or a |
|---|
| 104 | decimal representation otherwise. |
|---|
| 105 | |
|---|
| 106 | rgroup The real group ID of the process. This shall be the textual |
|---|
| 107 | group ID, if it can be obtained and the field width permits, or |
|---|
| 108 | a decimal representation otherwise. |
|---|
| 109 | |
|---|
| 110 | group The effective group ID of the process. This shall be the textual |
|---|
| 111 | group ID, if it can be obtained and the field width permits, or |
|---|
| 112 | a decimal representation otherwise. |
|---|
| 113 | |
|---|
| 114 | pid The decimal value of the process ID. |
|---|
| 115 | |
|---|
| 116 | ppid The decimal value of the parent process ID. |
|---|
| 117 | |
|---|
| 118 | pgid The decimal value of the process group ID. |
|---|
| 119 | |
|---|
| 120 | pcpu The ratio of CPU time used recently to CPU time available in the |
|---|
| 121 | same period, expressed as a percentage. The meaning of |
|---|
| 122 | "recently" in this context is unspecified. The CPU time avail- |
|---|
| 123 | able is determined in an unspecified manner. |
|---|
| 124 | |
|---|
| 125 | vsz The size of the process in (virtual) memory in 1024 byte units |
|---|
| 126 | as a decimal integer. |
|---|
| 127 | |
|---|
| 128 | nice The decimal value of the nice value of the process; see nice() . |
|---|
| 129 | |
|---|
| 130 | etime In the POSIX locale, the elapsed time since the process was |
|---|
| 131 | started, in the form: [[dd-]hh:]mm:ss |
|---|
| 132 | |
|---|
| 133 | time In the POSIX locale, the cumulative CPU time of the process in |
|---|
| 134 | the form: [dd-]hh:mm:ss |
|---|
| 135 | |
|---|
| 136 | tty The name of the controlling terminal of the process (if any) in |
|---|
| 137 | the same format used by the who utility. |
|---|
| 138 | |
|---|
| 139 | comm The name of the command being executed ( argv[0] value) as a |
|---|
| 140 | string. |
|---|
| 141 | |
|---|
| 142 | args The command with all its arguments as a string. The implementa- |
|---|
| 143 | tion may truncate this value to the field width; it is implemen- |
|---|
| 144 | tation-defined whether any further truncation occurs. It is |
|---|
| 145 | unspecified whether the string represented is a version of the |
|---|
| 146 | argument list as it was passed to the command when it started, |
|---|
| 147 | or is a version of the arguments as they may have been modified |
|---|
| 148 | by the application. Applications cannot depend on being able to |
|---|
| 149 | modify their argument list and having that modification be |
|---|
| 150 | reflected in the output of ps. |
|---|
| 151 | |
|---|
| 152 | Any field need not be meaningful in all implementations. In such a case |
|---|
| 153 | a hyphen ( '-' ) should be output in place of the field value. |
|---|
| 154 | |
|---|
| 155 | Only comm and args shall be allowed to contain <blank>s; all others |
|---|
| 156 | shall not. |
|---|
| 157 | |
|---|
| 158 | The following table specifies the default header to be used in the |
|---|
| 159 | POSIX locale corresponding to each format specifier. |
|---|
| 160 | |
|---|
| 161 | Format Specifier Default Header Format Specifier Default Header |
|---|
| 162 | args COMMAND ppid PPID |
|---|
| 163 | comm COMMAND rgroup RGROUP |
|---|
| 164 | etime ELAPSED ruser RUSER |
|---|
| 165 | group GROUP time TIME |
|---|
| 166 | nice NI tty TT |
|---|
| 167 | pcpu %CPU user USER |
|---|
| 168 | pgid PGID vsz VSZ |
|---|
| 169 | pid PID |
|---|
| 170 | |
|---|
| 171 | There is no special quoting mechanism for header text. The header text |
|---|
| 172 | is the rest of the argument. If multiple header changes are needed, |
|---|
| 173 | multiple -o options can be used, such as: |
|---|
| 174 | |
|---|
| 175 | ps -o "user=User Name" -o pid=Process\ ID |
|---|