You can use the truss command to check if a process is hung. The truss command must be run by the owner of the process or by root.
Use the following command syntax to check if a process is hung:
# truss [ -t syscall ] –p pid
Selects system calls to trace
Indicates the PID of the process to be traced
syscall is a comma-separated list of system calls to be traced. Starting the list with an ! character excludes the listed system calls from the trace. For more information about the available options, see the truss (1) man page.Example 6-4 Displaying Process Status
# /usr/bin/truss -p 243 poll(0x00024D50, 2, -1) (sleeping...)
The example shows that the process is waiting for another connection request, which is a normal response. If the response does not change after a new connection request has been made, the process could be hung.