ps | |
Author: | AT&T Bell Laboratories |
Developer: | Various open-source and commercial developers |
Programming Language: | C |
Operating System: | Unix, Unix-like, Plan 9, Inferno, KolibriOS, IBM i |
Platform: | Cross-platform |
Genre: | Command |
License: | Plan 9: MIT License |
In most Unix and Unix-like operating systems, the ps
(process status) program displays the currently-running processes. The related Unix utility [[top (software)|top]]
provides a real-time view of the running processes.
KolibriOS includes an implementation of the command.[1] The command has also been ported to the IBM i operating system.[2] In Windows PowerShell, ps
is a predefined command alias for the Get-Process
cmdlet, which essentially serves the same purpose.
PID TTY TIME CMD 7431 pts/0 00:00:00 su 7434 pts/0 00:00:00 bash18585 pts/0 00:00:00 ps
Users can pipeline ps
with other commands, such as less to view the process status output one page at a time:
Users can also utilize the ps
command in conjunction with the [[grep]]
command (see the [[pgrep]]
and [[pkill]]
commands) to find information about a single process, such as its id:
The use of [[pgrep]]
simplifies the syntax and avoids potential race conditions:
To see every process running as root in user format:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMANDroot 1 0.0 0.0 9436 128 - ILs Sun00AM 0:00.12 /sbin/init --
Column Header | Contents | |
---|---|---|
%CPU | How much of the CPU the process is using | |
%MEM | How much memory the process is using | |
ADDR | Memory address of the process | |
C or CP | CPU usage and scheduling information | |
COMMAND* | Name of the process, including arguments, if any | |
NI | nice value | |
F | Flags | |
PID | Process ID number | |
PPID | ID number of the process's parent process | |
PRI | Priority of the process | |
RSS | Resident set size | |
S or STAT | Process status code | |
START or STIME | Time when the process started | |
VSZ | Virtual memory usage | |
TIME | The amount of CPU time used by the process | |
TT or TTY | Terminal associated with the process | |
UID or USER | Username of the process's owner | |
WCHAN | Memory address of the event the process is waiting for |
ps
has many options. On operating systems that support the SUS and POSIX standards, ps
commonly runs with the options -ef, where "-e" selects every process and "-f" chooses the "full" output format. Another common option on these systems is -l, which specifies the "long" output format.
Most systems derived from BSD fail to accept the SUS and POSIX standard options because of historical conflicts. (For example, the "e" or "-e" option will display environment variables.) On such systems, ps
commonly runs with the non-standard options aux, where "a" lists all processes on a terminal, including those of other users, "x" lists all processes without controlling terminals and "u" adds a column for the controlling user for each process. For maximum compatibility, there is no "-" in front of the "aux". "ps auxww" provides complete information about the process, including all parameters.