Checks the status of active processes on a system, as well as displays detailed information about the processes
dispadmin
dispadmin[1M]
Lists default scheduling policies
priocntl
priocntl[1]
Assigns processes to a priority class and manages process priorities
nice
nice[1]
Changes the priority of a timesharing process
psrset
psrset[1M]
Binds specific process groups to a group of processors rather than to just a single processor
The Solaris Management Console's Processes Tool enables you to manage processes with a user-friendly interface. For information on using and starting the Solaris Management Console, see “Working With the Management Console [Tasks]” in System Administration Guide: Basic Administration.
The ps Command
The ps command enables you to check the status of active processes on a system, as well as display technical information about the processes. This data is useful for such administrative tasks as determining how to set process priorities.
Depending on which options you use, the ps command reports the following information:
Current status of the process
Process ID
Parent process ID
User ID
Scheduling class
Priority
Address of the process
Memory used
CPU time used
The following table describes some fields that are reported by the ps command. Which fields are displayed depend on which option you choose. For a description of all available options, see ps[1].
Table 23–2 Summary of Fields in ps ReportsField
Description
UID
The effective user ID of the process's owner.
PID
The process ID.
PPID
The parent process ID.
C
The processor utilization for scheduling. This field is not displayed when the -c option is used.
CLS
The scheduling class to which the process belongs such as real-time, system, or timesharing. This field is included only with the -c option.
PRI
The kernel thread's scheduling priority. Higher numbers indicate a higher priority.
NI
The process's nice number, which contributes to its scheduling priority. Making a process “nicer” means lowering its priority.
ADDR
The address of the proc structure.
SZ
The virtual address size of the process.
WCHAN
The address of an event or lock for which the process is sleeping.
STIME
The starting time of the process in hours, minutes, and seconds.
TTY
The terminal from which the process, or its parent, was started. A question mark indicates that there is no controlling terminal.
TIME
The total amount of CPU time used by the process since it began.
CMD
The command that generated the process.
How to List Processes
You can use the ps command to list all the processes on a system.
ps
Displays only the processes that are associated with your login session.
-ef
Displays full information about all the processes that are being executed on the system.
-c
Displays process scheduler information.
Example—Listing Processes
The following example shows output from the ps command when no options are used.
$ ps PID TTY TIME COMD 1664 pts/4 0:06 csh 2081 pts/4 0:00 ps
The following example shows output from ps -ef. This output shows that the first process that is executed when the system boots is sched [the swapper] followed by the init process, pageout, and so on.
$ ps -ef UID PID PPID C STIME TTY TIME CMD root 0 0 0 Dec 20 ? 0:17 sched root 1 0 0 Dec 20 ? 0:00 /etc/init - root 2 0 0 Dec 20 ? 0:00 pageout root 3 0 0 Dec 20 ? 4:20 fsflush root 374 367 0 Dec 20 ? 0:00 /usr/lib/saf/ttymon root 367 1 0 Dec 20 ? 0:00 /usr/lib/saf/sac -t 300 root 126 1 0 Dec 20 ? 0:00 /usr/sbin/rpcbind root 54 1 0 Dec 20 ? 0:00 /usr/lib/sysevent/syseventd root 59 1 0 Dec 20 ? 0:00 /usr/lib/picl/picld root 178 1 0 Dec 20 ? 0:03 /usr/lib/autofs/automountd root 129 1 0 Dec 20 ? 0:00 /usr/sbin/keyserv root 213 1 0 Dec 20 ? 0:00 /usr/lib/lpsched root 154 1 0 Dec 20 ? 0:00 /usr/sbin/inetd -s root 139 1 0 Dec 20 ? 0:00 /usr/lib/netsvc/yp/ypbind ... root 191 1 0 Dec 20 ? 0:00 /usr/sbin/syslogd root 208 1 0 Dec 20 ? 0:02 /usr/sbin/nscd root 193 1 0 Dec 20 ? 0:00 /usr/sbin/cron root 174 1 0 Dec 20 ? 0:00 /usr/lib/nfs/lockd daemon 175 1 0 Dec 20 ? 0:00 /usr/lib/nfs/statd root 376 1 0 Dec 20 ? 0:00 /usr/lib/ssh/sshd root 226 1 0 Dec 20 ? 0:00 /usr/lib/power/powerd root 315 1 0 Dec 20 ? 0:00 /usr/lib/nfs/mountd root 237 1 0 Dec 20 ? 0:00 /usr/lib/utmpd . . .
The /proc File System and Commands
You can display detailed information about the processes listed in the /proc directory by using process commands. The /proc directory is also known as the process file system [PROCFS]. Images of active processes are stored here by their process ID number.
The process tools are similar to some options of the ps command, except that the output that is provided by these commands is more detailed. In general, the process commands do the following:
Display more information about processes, such as fstat and fcntl, working directories, and trees of parent and child processes
Provide control over processes by allowing users to stop or resume them
Managing Processes With /proc Process Commands
You can display detailed, technical information about or control active processes by using some of the process commands. Table 23–3 lists some of the /proc commands.
If a process becomes trapped in an endless loop, or if it takes too long to execute, you might want to stop [kill] the process. For more information about stopping processes using the pkill command, see Chapter 23, Managing System Processes [Tasks].
The /proc file system is a directory hierarchy that contains additional subdirectories for state information and control functions.
The /proc file system also provides a watchpoint facility that is used to remap read and write permissions on the individual pages of a process's address space. This facility has no restrictions and is MT-safe.
Debugging tools have been modified to use /proc's watchpoint facility, which means that the entire watchpoint process is faster.
The following restrictions have been removed when setting watchpoints by using the dbx debugging tool:
Setting watchpoints on local variables on the stack due to SPARC register windows
Setting watchpoints on multithreaded processes
For more information, see proc[4], core[4], and mdb[1].
Table 23–3 /proc Process CommandsProcess Command
Description
pcred
Displays process credential information
pfiles
Reports fstat and fcntl information for open files in a process
pflags
Prints /proc tracing flags, pending and held signals, and other status information
pldd
Lists the dynamic libraries that are linked into a process
pmap
Prints the address space map of each process
psig
Lists the signal actions and handlers of each process
prun
Starts each process
pstack
Prints a hex+symbolic stack trace for each lwp in each process
pstop
Stops each process
ptime
Times a process by using microstate accounting
ptree
Displays the process trees that contain the process
pwait
Displays status information after a process terminates
pwdx
Displays the current working directory for a process
For more information, see proc[1].
How to Display Information About Processes
Obtain the process ID of the process you want to display more information about.
process is the name of the process you want to display more information about.
The process ID is displayed in the first column of the output.
Display the process information you need.
pcommand
Process tool command that you want to run. Table 23–3 lists these commands.
pid
Indicates the process ID.
Example—Displaying Information About Processes
The following example shows how to use process tool commands to display more information about an lpsched process.
# pgrep lpsched 1 213 # pwdx 213 2 213: / # ptree 213 3 213 /usr/lib/lpsched # pfiles 213 4 213: /usr/lib/lpsched Current rlimit: 4096 file descriptors 0: S_IFIFO mode:0000 dev:270,0 ino:67 uid:0 gid:0 size:0 O_RDWR 1: S_IFIFO mode:0000 dev:270,0 ino:67 uid:0 gid:0 size:0 O_RDWR 3: S_IFCHR mode:0666 dev:136,0 ino:35882 uid:0 gid:3 rdev:21,0 O_WRONLY FD_CLOEXEC 4: S_IFDOOR mode:0444 dev:275,0 ino:18526 uid:0 gid:0 size:0 O_RDONLY|O_LARGEFILE FD_CLOEXEC door to nscd[208] 5: S_IFREG mode:0664 dev:136,0 ino:64648 uid:71 gid:8 size:0 O_WRONLY
Obtains the process identification number for lpsched
Displays the current working directory for lpsched
Displays the process tree that containslpsched
Displays fstat and fcntl information
How to Control Processes
Obtain the process ID of the process you want to control.
process is the name of the process you want to control.
The process identification number is in the first column of the output.
Use the appropriate process command to control the process.
pcommand
Process command you want to run. Table 23–3 lists these commands.
pid
Identifies the process ID.
Verify the process status.
Example—Controlling Processes
The following example shows how to use process tools to stop and restart dtpad.
# pgrep dtpad 1 2921 # pstop 2921 2 # prun 2921 3
Obtains the process identification number for dtpad
Stops the dtpad process
Restarts the dtpad process
Killing a Process [pkill]
Sometimes, you might need to stop [kill] a process. The process might be in an endless loop, or you might have started a large job that you want to stop before it is completed. You can kill any process that you own, and superuser can kill any process in the system except for those processes with process IDs of 0, 1, 2, 3, and 4. Killing these processes might crash the system.