ps (Unix)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
ps
Original authorAT&T Bell Laboratories
DevelopersVarious open-source and commercial developers
Initial releaseFebruary 1973; 53 years ago (1973-02)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix, Unix-like, Plan 9, Inferno, KolibriOS, IBM i
    PlatformCross-platform
    TypeCommand
    LicensePlan 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 provides a real-time view of the running processes.

    Implementations

    [edit | edit source]

    KolibriOS includes an implementation of the ps command.[1] The ps 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.

    Examples

    [edit | edit source]
    # ps
      PID TTY          TIME CMD
     7431 pts/0    00:00:00 su
     7434 pts/0    00:00:00 bash
    18585 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:

    $ ps -A | less
    

    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:

    $ # Trying to find the PID of `firefox-bin` which is 2701
    $ ps -A | grep firefox-bin
    2701 ?        22:16:04 firefox-bin
    

    The use of pgrep simplifies the syntax and avoids potential race conditions:

    $ pgrep -l firefox-bin
    2701 firefox-bin
    

    To see every process running as root in user format:

    # ps -U root -u
    USER   PID  %CPU %MEM    VSZ   RSS TT  STAT STARTED        TIME COMMAND
    root     1   0.0  0.0   9436   128  -  ILs  Sun00AM     0:00.12 /sbin/init --
    

    Header line

    [edit | edit source]
    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

    * = Often abbreviated

    Options

    [edit | edit source]

    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 from X/Open System Interfaces (XSI), an optional extension to POSIX.

    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.

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

    Further reading

    [edit | edit source]
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]