|
|
|
|
|
|
|
|
Uh-oh, one of my program got stuck.
How do I 'unstuck' it?
|
|
There are always a number of different programs from
different users (including yourself) running
at the same time. Each Unix program, either a command or
application, is called a "process."
Each process has a unique "process ID" or "pid"
assigned to it. You can look at processes that are currently executing by
using the "ps" command.
For examples:
-
You type |
It does |
$ ps |
list processes belong to you only |
$ ps -Af |
list all processes, in a long format (bash shell) |
$ ps -aux |
list all processes, in a long format (tcsh shell) |
|
"ps" command will give you rich information about what,
whose, when, how long processes are currently running.
Normally, a program/command will terminate correctly when
it finishes doing what has been instructed.
However, time to time a process may get strayed and
cause some problems such as hung-up or terminal lock-up.
In such cases, of course, you should first check carefully
again and make it sure that you didn't mis-read or click
incorrect button, etc. - try to correct the problem in an
ordinary fashion. Also, no matter how desperate, keep in
mind that this is Unix, and think twice if you are
reaching to the back of workstation for the power switch.
(by doing so, you're causing obscenely more problems)
Even though nothing seems to cooperate, still you can correct the
problem. First, try to open a terminal windows.
If your console is completely hung-up and does not respond at all,
then login to an adjacent workstation, open a terminal windows, and
rlogin to the
workstation that is currently hung-up.
Now, you can selectively send a signal to that
particular "troblesome" process with the "kill"
command saying "please terminate yourself" with an exclamation mark.
(no reboot or reset button necessary)
You can do this by typing "kill -9 pid" where pid
is the process ID number of the "stuck" process you want to
terminate (you need to find this pid using "ps" command first).
If the process is still around after a "kill -9",
then it is either hung up in the Unix kernel, becoming
a "zombie" process, or you are not even the owner of the
process! ("kill" command will tell you if you try to
kill something you don't own) BTW, "zombie" process(es)
will automatically be cleaned up by Unix kernal, you don't
have to worry about them.
To learn more about "ps," type "man ps."
|
|
|