Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ps(1) — Tru64 UNIX 5.1b

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Commands:  kill(1)

nice(1)

renice(8)

runon(1)

w(1)

Functions:  exec(2)

exit(2)

fork(2)

getpriority(2)

wait(2)

Routines:  nlist(3)

numa_intro(3)

sched_setscheduler(3)

Files:  processor_sets(4)

class_scheduling(4)

Standards:  standards(5)

ps(1)  —  Commands

NAME

ps − Displays current process status

SYNOPSIS

Syntax conforming to XCU5.0

ps [−aAdejflm] [−o specifier] [=header] ,... [−O specifier] [=header] ,... [−g glist] [−G glist] [−p plist] [−s slist] [−t tlist] [−u ulist] [−U ulist] [−n nlist]

BSD Compatible Syntax

ps [aAeghjlLmsSTuvwx] [o specifier] [=header] ,... [O specifier] [=header] ,... [t tty] [process_number]

The ps command displays the current process status. 

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows:

ps:  XCU5.0

Refer to the standards(5) reference page for more information about industry standards and associated tags. 

OPTIONS

Current Syntax

The following options can be used with ps:

−aPrints information to standard output about all processes, except the session leaders and processes not associated with a terminal. 

−AWrites information for all processes. 

−dPrints information to standard output about all processes, except the session leaders. 

−ePrints information to standard output about all processes.  Equivalent to −A. 

−fAttempts to generate a full listing. Under certain circumstances, the −f option does not return the full path and arguments of a process. Instead, it will return a bracketed process name such as [process_name].  This behavior conforms with the XPG4 standard. 

−g glist
Prints only information about processes that are in the process groups listed in glist.  The glist is a list of process-group identifiers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both.  Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. 

−G glist
Writes information for processes whose real group ID numbers or names are given in glist.  The glist is a list of process-group identifiers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both.  Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. 

−j[Tru64 UNIX]  Produces job control information, with fields specified for user, pid, ppid, pgid, sess, jobc, state, tname, time and command. 

−lGenerates a long listing. 

−m[Tru64 UNIX]  Prints all threads in a task, if the task has more than one. 

−o specifier[=header],...
Specifies a list of format specifiers to describe the output format.

Multiple −o options may be specified.  The final output is a concatenation of all options specified. 

[Tru64 UNIX]  If the −O option is used with one or more −o options, the −O option must appear first on the command line. 

−O specifier[=header],...
[Tru64 UNIX]  Same as the −o option, except it displays the fields specified by pid, state, tname, time, and command in addition to the specifiers supplied on the command line. 

[Tru64 UNIX]  The −O option may be used with one or more −o options.  The result is a concatenated output.  The −O option must be specified first. 

−n nlist
Historically, used to specify an alternative system file name list, nlist, in place of the default. 

[Tru64 UNIX]  The name list concept (see the nlist(3) reference page) does not apply to the Tru64 UNIX ps command; consequently, the −n option is ignored. 

−p plist
Displays only information about processes with the process numbers specified in plist.  The plist argument is either a list of process ID numbers or a list of process ID numbers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both.  Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. 

−r[Tru64 UNIX]  Enables warning messages. 

−s slist
[Tru64 UNIX]  Displays information about processes belonging to the sessions specified in slist.  The slist argument is either a list of session ID numbers or a list of session ID numbers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both.  Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. 

−t tlist
Displays only information about processes associated with the terminals listed in tlist.  The tlist argument is either a list of terminal identifiers or a list of terminal identifiers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces, or both.  Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. 

Terminal identifiers must be in one of two forms:

     1.The device’s file name

     2.The device’s digit identifier, if the device’s file name begins with tty

−u ulist
Displays only information about processes with the user ID numbers or login names specified in ulist.  The ulist argument is either a list of user IDs or a list of user IDs enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces, or both.  Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. 

In the listing, ps displays the numerical user ID unless the −f option is used; then it displays the login name. 

−U ulist
Writes information for processes whose real user ID numbers or login names are given in ulist.  The ulist argument is either a list of user IDs or a list of user IDs enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces, or both.  Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. 

BSD Compatible Syntax

[Tru64 UNIX]  The following BSD compatible options can be used with ps (note that these options are not prefixed with a − (dash) character):

a[Tru64 UNIX]  Asks for information regarding processes associated with terminals (ordinarily only one’s own processes are displayed). 

A[Tru64 UNIX]  Increases the argument space. 

e[Tru64 UNIX]  Asks for the environment to be printed, as well as the arguments to the command. 

g[Tru64 UNIX]  Asks for all processes.  Without this option, ps only prints interesting processes.  Processes are deemed to be uninteresting if they are process group leaders.  This normally eliminates top-level command interpreters and processes waiting for users to log in on free terminals. 

h[Tru64 UNIX]  Repeats the header after each screenful of information. 

j[Tru64 UNIX]  Produces job control information, with fields specified by user, ppid, pgid, sess, and jobc. 

l[Tru64 UNIX]  Asks for a detailed list, with fields specified by ppid, cp, pri, nice, vsize, rssize and wchan. 

L[Tru64 UNIX]  Lists all available format specifiers. 

m[Tru64 UNIX]  Prints all threads in a task, if the task has more than one. 

o specifier[=header],...
[Tru64 UNIX]  Specifies a list of format specifiers to describe the output format.

O specifier[=header],...
[Tru64 UNIX]  Same as o, except it displays the fields specified by pid, state, tname, cputime, and comm in addition to the specifiers supplied on the command line. 

s[Tru64 UNIX]  Gives signal states of the processes, with fields specified by uid, cursig, sig, sigmask, sigignore, and sigcatch. 

S[Tru64 UNIX]  Prints usage summaries (total usage of a command, as opposed to current usage). 

ttty[Tru64 UNIX]  Lists only processes for the specified terminal. 

T[Tru64 UNIX]  Lists all processes on your terminal. 

u[Tru64 UNIX]  Produces a user oriented output. This includes fields specified by user, pcpu, pmem, vsize, rssize, and start. 

v[Tru64 UNIX]  Produces a version of the output containing virtual memory statistics.  This includes fields specified by cputime, sl, pagein, vsize, rssize, pcpu, and pmem. 

w[Tru64 UNIX]  Uses a wide output format (132 columns (bytes) rather than 80); if this option is doubled (ww), uses an arbitrarily wide output.  This information determines how much of long commands to print. 

x[Tru64 UNIX]  Asks even about processes with no terminal. 

OPERANDS

Current Syntax

None

BSD Compatible Syntax

process_number
[Tru64 UNIX]  Restricts output to the specified process. This argument must be entered last on the command line.

DESCRIPTION

While ps is a fairly accurate snapshot of the system, ps cannot begin and finish a snapshot as fast as some processes change state.  At times there may be minor discrepancies. 

The ps command can be used on multiprocessor systems and for querying the system state of realtime applications for their POSIX priority and scheduling policy. 

Output formats for each process include the process ID (pid), control terminal of the process (tname), CPU time used by the process (cputime) (this includes both user and system time), the state of the process (state), and an indication of the command that is running (command).  The abbreviation tty indicates a terminal. 

[Tru64 UNIX]  The state is given by a sequence of letters, for example, RWN.  The first letter indicates the status of the process:

R[Tru64 UNIX]  Runnable process. 

U[Tru64 UNIX]  Uninterruptible sleeping process. 

S[Tru64 UNIX]  Process sleeping for less than about 20 seconds. 

I[Tru64 UNIX]  Idle (sleeping longer than about 20 seconds) process. 

T[Tru64 UNIX]  Stopped process. 

H[Tru64 UNIX]  Halted process. 

[Tru64 UNIX]  Additional characters after these, if any, indicate additional state information:

W[Tru64 UNIX]  Process is swapped out (shows a blank space if the process is loaded (in-core)). 

>[Tru64 UNIX]  Process has specified a soft limit on memory requirements and is exceeding that limit; such a process is (necessarily) not swapped. 

[Tru64 UNIX]  An additional letter may indicate whether a process is running with altered CPU scheduling priority (nice):

N[Tru64 UNIX]  Process priority is reduced. 

<[Tru64 UNIX]  Process priority has been artificially raised. 

+[Tru64 UNIX]  Process is a process group leader with a controlling terminal. 

Format Specifiers

The following list contains all format specifiers that can be used with ps, such as ps -o args, to control the display output:

Specifier Header Meaning
acflag ACFLG [Tru64 UNIX]  Process accounting flag
args COMMAND Command arguments
c C CPU utilization factor for scheduling
cmd CMD [Tru64 UNIX]  Command arguments
comm COMMAND Command name for accounting
command COMMAND [Tru64 UNIX]  Command arguments (and environment with BSD e option)
cp CP [Tru64 UNIX]  Short-term CPU utilization factor (used in scheduling)
cputime TIME [Tru64 UNIX]  Current CPU time used
cursig CURSIG [Tru64 UNIX]  Current signal
etime ELAPSED Time command has been running
flag F [Tru64 UNIX]  Process flags
group GROUP Group name
inblock INBLK [Tru64 UNIX]  Block input operations
jobc JOBC [Tru64 UNIX]  Current count of processes qualifying PGID for job control
logname LOGNAME [Tru64 UNIX]  User’s login name
longtname TTY [Tru64 UNIX]  Long controlling terminal device name
lstart STARTED [Tru64 UNIX]  Start date and time of process
majflt MAJFLT [Tru64 UNIX]  Page faults
minflt MINFLT [Tru64 UNIX]  Page reclaims
msgrcv MSGRCV [Tru64 UNIX]  Messages received
msgsnd MSGSND [Tru64 UNIX]  Messages sent
nice NI Process scheduling increment (see the setpriority() call). 
nivcsw IVCSW [Tru64 UNIX]  Involuntary context switches
NSG NSG [Tru64 UNIX]  NUMA Scheduling Group. (-1 means the process is not attached to an NSG. An n prefix to the NSG number means that any children of the process do not inherit its NSG attachment.) 
nsignals NSIGS [Tru64 UNIX]  Signals received
nswap NSWAP [Tru64 UNIX]  Swaps
nvcsw VCSW [Tru64 UNIX]  Voluntary context switches
nwchan WCHAN [Tru64 UNIX]  Address of event on which a process is waiting (an address in the system).  In this case, the initial part of the address is trimmed off and is printed hexadecimally, for example, 0x80004000 prints as 4000. 
oublock OUBLK [Tru64 UNIX]  Block output operations
pagein PAGEIN [Tru64 UNIX]  Number of disk I/Os resulting from references by the process to pages not loaded in core. 
pcpu %CPU Percent CPU usage. This is a decaying average of 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%. 
pgid PGID Process group ID
pid PID Process ID
pmem %MEM [Tru64 UNIX]  Percent real memory usage
policy POL [Tru64 UNIX]  Current scheduling policy
ppid PPID Parent process ID
pri PRI [Tru64 UNIX]  Process priority
pset PSET [Tru64 UNIX]  Current processor set (^ means bound)
psr PSR [Tru64 UNIX]  Current processor (~ means bound)
psxpri PPR [Tru64 UNIX]  POSIX scheduling priority
RAD RAD [Tru64 UNIX]   Resource Affinity Domain binding. (An a prefix to the RAD number means that the process is attached to the RAD. A b prefix to the RAD number means that the process is bound to the RAD (cannot execute on any other RAD). An n prefix to a or b means that any children of the process do not  inherit its RAD attachment or binding, respectively.) 
rgid RGID [Tru64 UNIX]  Process group (real GID)
rgroup RGROUP Real group name
rssize RSS [Tru64 UNIX]  Real memory (resident set) size of the process (in 1024 byte units)
ruid RUID [Tru64 UNIX]  Process user ID (real UID)
ruser RUSER User ID
scount SCNT [Tru64 UNIX]  Suspend count
sess SESS [Tru64 UNIX]  Session ID
sig PENDING [Tru64 UNIX]  Signals pending to this process
sigcatch CAUGHT [Tru64 UNIX]  Signals being caught
sigignore IGNORED [Tru64 UNIX]  Signals being ignored
sigmask BLOCKED [Tru64 UNIX]  Current signal mask
sl SL [Tru64 UNIX]  Sleep time
start STARTED [Tru64 UNIX]  Start time of process.  If start time was more than 24 hours ago, gives the date. 
state S [Tru64 UNIX]  Symbolic process status
status STATUS [Tru64 UNIX]  Process status
stime STARTED Start time of process.  If start time was more than 24 hours ago, gives the date. 
svgid SVGID [Tru64 UNIX]  Saved process group ID
svuid SVUID [Tru64 UNIX]  Saved process user ID
systime SYSTEM [Tru64 UNIX]  Time spent in system
tdev TDEV [Tru64 UNIX]  Major/minor device for controlling terminal
time TIME Current CPU time used
tname TTY [Tru64 UNIX]  Controlling terminal device name
tpgid TPGID [Tru64 UNIX]  Foreground process group associated with terminal
tsession TSESS [Tru64 UNIX]  Session associated with terminal
tt TTY Controlling terminal device name
tty TTY Controlling terminal device name
ucomm COMMAND [Tru64 UNIX]  Command name for accounting
uid UID [Tru64 UNIX]  Process user ID (effective UID)
umask UMASK [Tru64 UNIX]  Process umask
user USER Username
usertime USER [Tru64 UNIX]  Time spent in user space
usrpri UPR [Tru64 UNIX]  Base scheduling priority
u_procp UPROCP [Tru64 UNIX]  Address of process in user area
vsize VSZ [Tru64 UNIX]  Process virtual address size
vsz VSZ Process virtual address size
wchan WCHAN [Tru64 UNIX]  Address of event on which a process is waiting (an address in the system).  A symbol is chosen that classifies the address, if available, from the system; otherwise, it is printed numerically. 

Compound Format Specifiers

[Tru64 UNIX]  Compound format specifiers are made up of groups of individual format specifiers, as follows:

Specifier Meaning
RUSAGE [Tru64 UNIX]  minflt, majflt, nswap, inblock, oublock, msgsnd, msgrcv, nsigs, nvcsw, nivcsw
THREAD [Tru64 UNIX]  user, pcpu, pri, scnt, wchan, usertime, systime
DFMT (default printing format) [Tru64 UNIX]  pid, tname, state, cputime, command
LFMT (BSD l format) [Tru64 UNIX]  uid, pid, ppid, cp, pri, nice, vsz, rss, wchan, state, tname, cputime, command
JFMT (j format) [Tru64 UNIX]  user, pid, ppid, pgid, sess, jobc, state, tname, cputime, command
SFMT (BSD s format) [Tru64 UNIX]  uid, pid, cursig, sig, sigmask, sigignore, sigcatch, stat, tname, command
VFMT (BSD v format) [Tru64 UNIX]  pid, tt, state, time, sl, pagein, vsz, rss, pcpu, pmem, command
UFMT (BSD u format) [Tru64 UNIX]  uname, pid, pcpu, pmem, vsz, rss, tt, state, start, time, command
F5FMT (f format) [Tru64 UNIX]  uname, pid, ppid, pcpu, start, tt, time, command
L5FMT (l format) [Tru64 UNIX]  f, state, uid, pid, ppid, pcpu, pri, nice, rss, wchan, tt, time, ucomm
FL5FMT (lf format) [Tru64 UNIX]  f, state, uid, pid, ppid, pcpu, pri, nice, rss, wchan, start, time, command
SCHED [Tru64 UNIX]  user, pcpu, pri, usrpri, nice, psxpri, psr, policy, pset
NUMA [Tru64 UNIX]  user, psr, pset, RAD, NSG, s, tty, time, command (See EXAMPLES)

Process Flags

The flags associated with process in <sys/proc.h> are as follows:

Symbolic Constant Flag Value Meaning
SLOAD 0x00000001 In core
SSYS 0x00000002 [Tru64 UNIX]  Swapper or pager process
SLOMAP 0x00000004 Process allowed to use low virtual memory
SNOTASK 0x00000040 Process completed exit
SWWAIT 0x00000080 Thread is removing zombie
SOMASK 0x00000200 Restore old mask after taking signal
SWEXIT 0x00000400 Working on exiting
SPHYSIO 0x00000800 Doing physical I/O
SVFORK 0x00001000 Process resulted from vfork()
SPAGV 0x00008000 Init data space on demand, from vnode
SSEQL 0x00010000 User warned of sequential vm behavior
SUANOM 0x00020000 User warned of random vm behavior
SCONTIGN 0x00040000 Process is ignoring SIGCONT
S1170 0X00080000 Process is using Single UNIX(R) Specification signal behaviors
SLOGIN 0x00400000 Process marked as a login for Capacity Limitation
SCTTY 0x00800000 Process has a controlling terminal
SXONLY 0x02000000 Process image read-protected
SAIO 0x08000000 Process performed asynchronous I/O
SNOCLDWAIT 0x20000000 No zombies when children exist
SNOCLDSTOP 0x40000000 No SIGCHLD when children stop
SEXEC 0x80000000 Process called exec

<defunct>
A process that has exited but whose parent process has not waited for it.

<error>
[Tru64 UNIX]  A process for which user area information could not be obtained due to a shortage of system memory.

<exiting>
A process that is blocked trying to exit.

NOTES

     1.[Tru64 UNIX]  The following BSD compatible options are not supported.  (You can reconstruct the output of these options by using the appropriate format specifiers, however.) 

c[Tru64 UNIX]  Displays the command name, as stored internally in the system for purposes of accounting, rather than the command arguments, which are kept in the process’s address space. 

n[Tru64 UNIX]  Displays numeric output.  In a long listing, the wchan field is printed numerically rather than symbolically.  In a user listing, the user field is replaced by a uid field. 

     2.The arguments displayed by args and command format specifiers reflect the arguments passed to the command at its invocation.  Any modification made to the arguments by the running command are not available. 

     3.The arguments displayed by args, command and state format specifiers are the only output fields that contain embedded blanks, which may be a concern if the output is passed to some type of parser.  Since output fields appear in the order of the format specifiers on the command line, you should put these specifiers at the end of the command if you are using a parser to analyze the output. 

RESTRICTIONS

     1.[Tru64 UNIX]  When you enter a ps command while running an application that forks child processes, you might see some child processes listed as being in the <defunct> state after they have exited.  Processes in this state cannot be killed until the process that forked them is killed. 

[Tru64 UNIX]  The system puts exiting child processes in the <defunct> state if their parent process is still running and has not caught the SIGCHLD signal or executed a wait() system call. 

[Tru64 UNIX]  To avoid having users encounter this problem when they run your application, make sure that your program logic either catches the SIGCHLD signal or executes a wait() system call when spawning a child process. 

     2.[Tru64 UNIX]  It is an error to use two format specifiers, such as comm and ucomm or command and args that are really synonyms for the same output request. 

     3.[Tru64 UNIX]  It is an error to use two or more compound format specifiers that contain the same simple format specifier, or to use a simple format specifier with a compound format specifier that includes the simple specifier. 

EXIT STATUS

The following exit values are returned:

0Successful completion. 

>0An error occurred. 

EXAMPLES

     1.To list all your processes, enter:

ps

     2.To list all processes, enter:

ps −A

The BSD equivalent looks like this:

ps ax

     3.To list processes owned by specific users, enter:

ps −f −l −ujim,jane,su

     4.To list processes associated with a specific terminal, enter:

ps −t console

The BSD equivalent looks like this:

ps tco

     5.To display only the pid, user, and comm information for all processes, enter:

ps −o pid,user,comm −A

     6.To display the parent process ID under the header PARENT, as well as the default headers (fields specified by pid, state, tname, time, command), enter:

ps −O ppid=PARENT

     7.The following ps command shows the use of the SCHED specifier on a two-processor system with two processor sets:

ps -O SCHED
PID USER %CPU PRI UPR NI PPR PSR POL PSET S   TTY        TIME COM
458 root  0.0  43  44  0  20   0  TS    0 I + console 0:01.34 csh
561 root  0.0  44  44  0  19   0  TS    0 I   ttyp0   0:00.42 csh
567 root  0.0  44  44  0  19   1  TS   ^2 I   ttyp0   0:00.03 runon
568 root  0.0  44  44  0  19   1  TS   ^2 I   ttyp0   0:00.03 sh
569 root  0.0  44  44  0  19   1  TS   ^2 S   ttyp0   0:00.31 csh
579 root  0.0  44  44  0  19  ~1  TS   ^2 S + ttyp0   0:00.03 runon
580 root  0.0  44  44  0  19  ~1  TS   ^2 S + ttyp0   0:00.03 sh
581 root  0.0  44  44  0  19  ~1  TS   ^2 R + ttyp0   0:00.06 ls -l

The display shows that all processes are running under the default timershare scheduling policy. Processes 458 and 561 are running unbound to processor 0 in processor set 0. Processes 567, 568, and 569, are running on processor 1 and are bound exclusively (^) to processor set 2. Processes 579, 580, and 581 are running bound to processor 1 (~) and are bound exclusively to processor set 2 (^). 

     8.The following ps -O command shows the use of the NUMA compound specifier on a multi-RAD system:

# ps -O NUMA
   PID USER   PSR PSET   RAD  NSG S    TTY          TIME COMMAND
     0 root    ~0    0     0   -1 R <  ??        0:10.24 kernel idle
               ~0    0     0      R N            0:00.00
                0    0     0      R              0:00.00
                0    0     0      S <            0:00.01
.
.
.
               ~2    0     2      R N            0:00.00
               ~3    0     3      R N            0:00.00
                0    0     0      U <            0:00.00
                1    0     1      U <            0:00.00
.
.
.
   659 root     3    0     3   -1 S    ??        0:02.55 smsd
                3    0    b3      I              0:00.47
                3    0     3      S              0:00.00
                3    0    b3      I              0:00.04
                0    0    b0      S              0:00.01
                0    0    b0      S              0:00.00
                0    0    b0      S              0:00.00
                1    0    b1      I              0:00.00
                2    0    b2      I              0:00.00
.
.
.
   789 tony     0    0     0   -1 S  + console   0:00.01 sh
   790 root     1    0     1   -1 S  + console   0:00.01 priv
   791 root     2    0     2   -1 R  + console   0:00.06 ps
   792 tony     3    0    a2    5 R  + console   0:00.02 nsg_attach1
   793 tony     3    0   na2   n5 R  + console   0:00.02 nsg_attach2

This display shows the processor (PSR), processor set (PSET), Resource Affinity Domain (RAD), and NUMA Scheduling Group (NSG) information for each process, along with the default information for the −O option.  In the RAD column of the display:

       •The letter a before the RAD number indicates that the process is attached to the RAD. Attachment allows the operating system software to execute the process on a RAD other than its home RAD. This is the case for processes 792 and 793 in the display. 

       •The letter b before the RAD number indicates that the process is bound to the RAD. Binding prevents the operating system software from executing the process on any RAD other than its home RAD. This is the case for certain threads of process 659. 

       •The letter n before the RAD number indicates that children of the process do not inherit its RAD attachment (a) or binding (b). This is the case for process 793. In this case, the application overrode the operating system default behavior, which is to have any child process of 793 inherit its RAD attachment or binding. 

In the NSG column:

       •-1 indicates that the process is not attached to a NUMA Scheduling Group. 

       •The letter n before the NSG identifier indicates that any children of the process do not inherit its NUMA Scheduling Group attachment. This is the case for process 793, which is attached to NSG 5. In this case, the application overrode the default operating system behavior, which is to have any child process of 793 inherit its NSG attachment. 

Note that all processes in a NUMA Scheduling Group, including any child processes, have to execute in the same RAD, as determined by the first process in the group to attach or bind to a RAD. Because any child processes of process 793 will not inherit its NSG attachment, those child processes do not have to execute in RAD 2. 

     9.To display the name of the shell you are currently running, enter:

ps -p $$

ENVIRONMENT VARIABLES

The following environment variables affect the execution of ps:

COLUMNS
Overrides the horizontal screen size, used to determine the number of text columns to display.

LANG
Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization variables contain an invalid setting, the utility behaves as if none of the variables had been defined. 

LC_ALL
If set to a non-empty string value, overrides the values of all the other internationalization variables.

LC_CTYPE
Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments).

LC_MESSAGES
Determines the locale for the format and contents of diagnostic messages written to standard error.

LC_TIME
Determines the format and contents of the date and time strings displayed.

NLSPATH
Determines the location of message catalogues for the processing of LC_MESSAGES. 

FILES

/dev
Searched to find terminal names.

/usr/include/sys/proc.h
Process information.

SEE ALSO

Commands:  kill(1), nice(1), renice(8), runon(1), w(1)

Functions:  exec(2), exit(2), fork(2), getpriority(2), wait(2)

Routines:  nlist(3), numa_intro(3), sched_setscheduler(3)

Files:  processor_sets(4), class_scheduling(4)

Standards:  standards(5)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026