Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PS(1)			  BSD General Commands Manual			 PS(1)

NAME
     ps	-- process status

SYNOPSIS
     ps	[-aCcefhjlmrSTuvwx] [-M	core] [-N system] [-O fmt] [-o fmt] [-p	pid]
	[-t tty] [-U username]
     ps	[-L]

DESCRIPTION
     The ps utility displays a header line followed by lines containing	infor-
     mation about your processes that have controlling terminals.  This	infor-
     mation is sorted by controlling terminal, then by process ID.

     The information displayed is selected based on a set of keywords (see the
     -L	-O and -o options).  The default output	format includes, for each
     process, the process' ID, controlling terminal, cpu time (including both
     user and system time), state, and associated command.

     The process file system (see procfs(5)) should be mounted when ps is exe-
     cuted, otherwise not all information will be available.

     The options are as	follows:

     -a	     Display information about other users' processes as well as your
	     own.  This	can be disabled	by setting the kern.ps_showallprocs
	     sysctl to zero.

     -c	     Change the	``command'' column output to just contain the exe-
	     cutable name, rather than the full	command	line.

     -C	     Change the	way the	cpu percentage is calculated by	using a
	     ``raw'' cpu calculation that ignores ``resident'' time (this nor-
	     mally has no effect).

     -e	     Display the environment as	well.

     -f	     Show commandline and environment information about	swapped	out
	     processes.	 This option is	honored	only if	the uid	of the user is
	     0.

     -h	     Repeat the	information header as often as necessary to guarantee
	     one header	per page of information.

     -j	     Print information associated with the following keywords: user,
	     pid, ppid,	pgid, sess, jobc, state, tt, time and command.

     -L	     List the set of available keywords.

     -l	     Display information associated with the following keywords: uid,
	     pid, ppid,	cpu, pri, nice,	vsz, rss, wchan, state,	tt, time and
	     command.

     -M	     Extract values associated with the	name list from the specified
	     core instead of the default /dev/kmem.

     -m	     Sort by memory usage, instead of by process ID.

     -N	     Extract the name list from	the specified system instead of	the
	     default /kernel.

     -O	     Add the information associated with the space or comma separated
	     list of keywords specified, after the process ID, in the default
	     information display.  Keywords may	be appended with an equals
	     (``='') sign and a	string.	 This causes the printed header	to use
	     the specified string instead of the standard header.

     -o	     Display information associated with the space or comma separated
	     list of keywords specified.  Keywords may be appended with	an
	     equals (``='') sign and a string.	This causes the	printed	header
	     to	use the	specified string instead of the	standard header.

     -p	     Display information associated with the specified process ID.

     -r	     Sort by current cpu usage,	instead	of by process ID.

     -S	     Change the	way the	process	time is	calculated by summing all ex-
	     ited children to their parent process.

     -T	     Display information about processes attached to the device	asso-
	     ciated with the standard input.

     -t	     Display information about processes attached to the specified
	     terminal device.

     -U	     Display the processes belonging to	the specified username.

     -u	     Display information associated with the following keywords: user,
	     pid, %cpu,	%mem, vsz, rss,	tt, state, start, time and command.
	     The -u option implies the -r option.

     -v	     Display information associated with the following keywords: pid,
	     state, time, sl, re, pagein, vsz, rss, lim, tsiz, %cpu, %mem and
	     command.  The -v option implies the -m option.

     -w	     Use 132 columns to	display	information, instead of	the default
	     which is your window size.	 If the	-w option is specified more
	     than once,	ps will	use as many columns as necessary without re-
	     gard for your window size.

     -x	     Display information about processes without controlling termi-
	     nals.

     A complete	list of	the available keywords are listed below.  Some of
     these keywords are	further	specified as follows:

     %cpu    The cpu utilization of the	process; this is a decaying average
	     over up to	a minute of previous (real) time.  Since the time base
	     over which	this is	computed varies	(since processes may be	very
	     young) it is possible for the sum of all %CPU fields to exceed
	     100%.

     %mem    The percentage of real memory used	by this	process.

     flags   The flags associated with the process as in the include file
	     <sys/proc.h>:

	     P_ADVLOCK	    0x00001	   Process may hold a POSIX advisory
					   lock
	     P_CONTROLT	    0x00002	   Has a controlling terminal
	     P_INMEM	    0x00004	   Loaded into memory
	     P_NOCLDSTOP    0x00008	   No SIGCHLD when children stop
	     P_PPWAIT	    0x00010	   Parent is waiting for child to
					   exec/exit
	     P_PROFIL	    0x00020	   Has started profiling
	     P_SELECT	    0x00040	   Selecting; wakeup/waiting danger
	     P_SINTR	    0x00080	   Sleep is interruptible
	     P_SUGID	    0x00100	   Had set id privileges since last
					   exec
	     P_SYSTEM	    0x00200	   System proc:	no sigs, stats or
					   swapping
	     P_TIMEOUT	    0x00400	   Timing out during sleep
	     P_TRACED	    0x00800	   Debugged process being traced
	     P_WAITED	    0x01000	   Debugging process has waited	for
					   child
	     P_WEXIT	    0x02000	   Working on exiting
	     P_EXEC	    0x04000	   Process called exec
	     P_OWEUPC	    0x20000	   Owe process an addupc() call	at
					   next	ast
	     P_SWAPPING	    0x40000	   Process is being swapped

     lim     The soft limit on memory used, specified via a call to
	     setrlimit(2).

     lstart  The exact time the	command	started, using the ``%c'' format de-
	     scribed in	strftime(3).

     nice    The process scheduling increment (see setpriority(2)).

     rss     the real memory (resident set) size of the	process	(in 1024 byte
	     units).

     start   The time the command started.  If the command started less	than
	     24	hours ago, the start time is displayed using the ``%l:ps.1p''
	     format described in strftime(3).  If the command started less
	     than 7 days ago, the start	time is	displayed using	the
	     ``%a6.15p'' format.  Otherwise, the start time is displayed using
	     the ``%e%b%y'' format.

     state   The state is given	by a sequence of letters, for example, "RWNA".
	     The first letter indicates	the run	state of the process:

	     D	     Marks a process in	disk (or other short term, uninter-
		     ruptible) wait.
	     I	     Marks a process that is idle (sleeping for	longer than
		     about 20 seconds).
	     J	     Marks a process which is in jail(2).  The hostname	of the
		     prison can	be found in `/proc/<pid>/status'.
	     R	     Marks a runnable process.
	     S	     Marks a process that is sleeping for less than about 20
		     seconds.
	     T	     Marks a stopped process.
	     Z	     Marks a dead process (a ``zombie'').

	     Additional	characters after these,	if any,	indicate additional
	     state information:

	     +	     The process is in the foreground process group of its
		     control terminal.
	     <	     The process has raised CPU	scheduling priority.
	     >	     The process has specified a soft limit on memory require-
		     ments and is currently exceeding that limit; such a
		     process is	(necessarily) not swapped.
	     A	     the process has asked for random page replacement
		     (MADV_RANDOM, from	madvise(2), for	example, lisp(1) in a
		     garbage collect).
	     E	     The process is trying to exit.
	     L	     The process has pages locked in core (for example,	for
		     raw I/O).
	     N	     The process has reduced CPU scheduling priority (see
		     setpriority(2)).
	     S	     The process has asked for FIFO page replacement
		     (MADV_SEQUENTIAL, from madvise(2),	for example, a large
		     image processing program using virtual memory to sequen-
		     tially address voluminous data).
	     s	     The process is a session leader.
	     V	     The process is suspended during a vfork.
	     W	     The process is swapped out.
	     X	     The process is being traced or debugged.

     tt	     An	abbreviation for the pathname of the controlling terminal, if
	     any.  The abbreviation consists of	the three letters following
	     /dev/tty, or, for the console, ``con''.  This is followed by a
	     ``-'' if the process can no longer	reach that controlling termi-
	     nal (i.e.,	it has been revoked).

     wchan   The event (an address in the system) on which a process waits.
	     When printed numerically, the initial part	of the address is
	     trimmed off and the result	is printed in hex, for example,
	     0x80324000	prints as 324000.

     When printing using the command keyword, a	process	that has exited	and
     has a parent that has not yet waited for the process (in other words, a
     zombie) is	listed as ``<defunct>'', and a process which is	blocked	while
     trying to exit is listed as ``<exiting>''.	 The ps	utility	makes an edu-
     cated guess as to the file	name and arguments given when the process was
     created by	examining memory or the	swap area.  The	method is inherently
     somewhat unreliable and in	any event a process is entitled	to destroy
     this information, so the names cannot be depended on too much.  The ucomm
     (accounting) keyword can, however,	be depended on.

KEYWORDS
     The following is a	complete list of the available keywords	and their
     meanings.	Several	of them	have aliases (keywords which are synonyms).

     %cpu	percentage cpu usage (alias pcpu)
     %mem	percentage memory usage	(alias pmem)
     acflag	accounting flag	(alias acflg)
     command	command	and arguments
     cpu	short-term cpu usage factor (for scheduling)
     flags	the process flags, in hexadecimal (alias f)
     inblk	total blocks read (alias inblock)
     jobc	job control count
     ktrace	tracing	flags
     ktracep	tracing	vnode
     lim	memoryuse limit
     logname	login name of user who started the process
     lstart	time started
     majflt	total page faults
     minflt	total page reclaims
     msgrcv	total messages received	(reads from pipes/sockets)
     msgsnd	total messages sent (writes on pipes/sockets)
     nice	nice value (alias ni)
     nivcsw	total involuntary context switches
     nsigs	total signals taken (alias nsignals)
     nswap	total swaps in/out
     nvcsw	total voluntary	context	switches
     nwchan	wait channel (as an address)
     oublk	total blocks written (alias oublock)
     p_ru	resource usage (valid only for zombie)
     paddr	swap address
     pagein	pageins	(same as majflt)
     pgid	process	group number
     pid	process	ID
     poip	pageouts in progress
     ppid	parent process ID
     pri	scheduling priority
     re		core residency time (in	seconds; 127 = infinity)
     rgid	real group ID
     rlink	reverse	link on	run queue, or 0
     rss	resident set size
     rsz	resident set size + (text size / text use count) (alias	rs-
		size)
     rtprio	realtime priority (101 = not a realtime	process)
     ruid	real user ID
     ruser	user name (from	ruid)
     sess	session	pointer
     sig	pending	signals	(alias pending)
     sigcatch	caught signals (alias caught)
     sigignore	ignored	signals	(alias ignored)
     sigmask	blocked	signals	(alias blocked)
     sl		sleep time (in seconds;	127 = infinity)
     start	time started
     state	symbolic process state (alias stat)
     svgid	saved gid from a setgid	executable
     svuid	saved uid from a setuid	executable
     tdev	control	terminal device	number
     time	accumulated cpu	time, user + system (alias cputime)
     tpgid	control	terminal process group ID
     tsess	control	terminal session pointer
     tsiz	text size (in Kbytes)
     tt		control	terminal name (two letter abbreviation)
     tty	full name of control terminal
     uprocp	process	pointer
     ucomm	name to	be used	for accounting
     uid	effective user ID
     upr	scheduling priority on return from system call (alias usrpri)
     user	user name (from	uid)
     vsz	virtual	size in	Kbytes (alias vsize)
     wchan	wait channel (as a symbolic name)
     xstat	exit or	stop status (valid only	for stopped or zombie process)

FILES
     /dev/kmem		    default kernel memory
     /var/run/dev.db	    /dev name database
     /var/db/kvm_kernel.db  system namelist database
     /kernel		    default system namelist
     /proc		    the	mount point of procfs(5)

SEE ALSO
     kill(1), w(1), kvm(3), strftime(3), procfs(5), pstat(8), sysctl(8)

BUGS
     Since ps cannot run faster	than the system	and is run as any other	sched-
     uled process, the information it displays can never be exact.

BSD				April 18, 1994				   BSD

NAME | SYNOPSIS | DESCRIPTION | KEYWORDS | FILES | SEE ALSO | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ps&sektion=1&manpath=FreeBSD+4.7-RELEASE>

home | help