PDF 文書ファイルをダウンロードする (2840 KB)
Chapter 19 Using Process ManagerUse Process Manager to display the processes that are running on your workstation, and to perform actions on them. You can do this without knowing the syntax for ps(1), truss(1), kill(1), and other character-based commands. Where relevant, the equivalent UNIX commands are given for each Process Manager action. About ProcessesUNIX works with processes. Your login shell, application programs, the edit session you run, and even the ls program that lists your files are all processes under control of the operating environment. In UNIX you can perform operations on these processes. For example, you can look at all the programs you're running at any time, stop and restart programs as you choose, and investigate and debug errant processes. Tips for Finding Errant ProcessesAn errant process is a process that is not doing the job you expect it to do. For example, a process might be consuming a large percentage of your available resources due to a bug, or it might be interfering with another process. Use Process Manager to detect errant processes when you experience the following:
When displaying all processes, Process Manager typically displays thirty to fifty processes, so finding the errant processes can be daunting to the untrained eye. The following tips may help (otherwise contact your System Administrator):
Sampling, Displaying, and Saving Process InformationProcess Manager displays and provides access to processes that are running on your workstation. Figure 19–1 Process Manager showing process entries containing the string “audio”.
Each process entry in the list gives you useful information, as explained in the following table:
You can perform the following actions without affecting any processes on the selected workstation:
To Open Process ManagerClick the Find Process control on the Tools subpanel of the Front Panel. The Process Manager main window is displayed. It immediately samples the workstation and displays a sample of all current processes. To Display Subsets of the Processes
To Find a Process
To Change the Sort Order of the DisplayBy default, Process Manager lists the process entries in order of decreasing CPU usage. You can tell this because the column heading over the CPU usage column (CPU%) is depressed, while the other column headings are not.
To Change the Sampling IntervalBy default, Process Manager samples the workstation and updates the display every 30 seconds. To disable/enable the continuous sampling mode, choose Stop/Start from the Sample menu. If continuous sampling is on, you will see a Stop menu item on the Sample menu; otherwise the menu item will read Start. To change the interval between samples, type a number of seconds (up to 604800, that is, 14 days) in the Sample Every box. Press Return to make the new sampling frequency come into effect. To sample immediately, choose Now from the Sample menu. Process Manager samples and then updates the display. Copying and SavingYou can select and copy one or more of the process entries in the display, and paste the text into other applications. You also have the following options for saving the sample data to files:
|
| Signal No. | Signal Name | Meaning |
|---|---|---|
| 1 | HUP | Hangup (often used before logging out) |
| 2 | INT | Interrupt (same as pressing Control+C in a terminal session) |
| 9 | KILL |
Kill (terminates without cleanup) Only works if issued by process owner or super user (root) The program cannot respond to this signal; it must terminate |
| 15 | TERM |
Kill (terminates gracefully after cleanup) Only works if issued by process owner or super user (root) |
The Kill menu item enables you to kill a process quickly by sending it a kill (9) signal. The Signal menu item gives you more control of the signal sent by the kill(1) command. For example you could send an INT signal or a HUP signal, and so on.
You should only send a signal to a process if you understand the implications of doing so. For example, if you select the login shell and send a kill signal, you will suddenly log out. For further information on processes and job control, contact your system administrator or see the Solaris Advanced User's Guide (Sun Microsystems).
Select a process entry in the Process Manager scrolling pane.
Choose Kill from the Process menu.
Process Manager kills the process (and its child processes) provided that you have permission to do so; otherwise an error is displayed. Sometimes it takes several seconds for the process to terminate. You can tell that a process has been killed if it is not listed the next time Process Manager updates its display.
The equivalent UNIX command is:
kill -9 PID where PID is the process ID of the selected process.
You can redefine the command performed by the Kill menu item to a different command by redefining the action labelled 'Kill' in the file:
/usr/dt/appconfig/types/C/sdtprocess.dt
Select a process entry in the Process Manager scrolling pane.
Choose Signal from the Process menu.
Process Manager displays a dialog box requesting you to specify the signals. You must supply at least one of the 42 signals defined in the signal(5) man page.
Type the relevant signal number or name and click OK.
Process Manager issues the signal command and closes the dialog box. No success message is issued. Killing a process typically kills its children.
The equivalent UNIX command is: kill -signum_name PID
where -signum_name is the signal number or name, and PID is the process ID of the selected process.
Select a process entry in the Process Manager scrolling pane.
Choose Look Up Owner from the Process menu.
Process Manager opens Address Manager and requests it to search the System Cards for the system user name of the selected process. For further details on Address Manager see Chapter 18, Using Address Manager.
Select a process entry in the Process Manager scrolling pane.
Choose Show Ancestry from the Process menu.
Process Manager displays a window containing the process trees for the specified process. Child processes are indented from the respective parent processes.

The equivalent UNIX command is:
/usr/proc/bin/ptree PID
where PID is the process ID of the selected process.
When a UNIX process initiates one or more dependent processes, we call these child processes, or children. Child and parent processes have the same user ID.
Select a process entry in the Process Manager scrolling pane.
Choose Trace Children from the Process menu.
Process Manager displays a record of the creation of any new children (and their children, recursively) for the selected process.
Error returns are reported using the error code names described in the Intro(2) man page.
The equivalent UNIX command is:
truss -fa -texec,fork -s¦CLD,ALRM -p PID
where PID is the process ID of the selected process.
During its execution, a process makes calls to the UNIX kernel, or system calls. You might want to trace these system calls to see the affect they are having on other processes.
Select a process entry in the Process Manager scrolling pane.
Choose Trace System Calls from the Process menu.
Process Manager displays a dialog box requesting you to enter optional arguments.
Click OK.
Each line of the trace output reports either the fault or signal name or the system call name with its arguments and return values. For further information, see the truss(1) man page.
The equivalent UNIX command is:
truss -p PID
where PID is the process ID of the selected process.
Select a process entry in the Process Manager scrolling pane.
Choose Show Stack from the Process menu.
Process Manager displays a window containing hexadecimal and symbolic stack trace for the selected process.
The equivalent UNIX command is:
/usr/proc/bin/pstack PID
where PID is the process ID of the selected process.
Application developers and system administrators sometimes use a debugging application such as Sun Workshop to investigate an errant process. The Debug item on the Process menu invokes your preferred debugger on the selected process.
Debug the process using your preferred debugger.
The equivalent UNIX command is:
workshop -d command
where workshop is the name of the debugger program and command is the command needed to pass the process ID to the debugger.