You may decide that you shouldn't have put a process in the background. Or you decide that the process is taking too long to execute. You can cancel a background process if you know its process ID.
The kill command aborts a process. The command's format is:
kill PID(s)
kill terminates the designated process IDs (shown under the PID heading in the ps listing). If you do not know the process ID, do a ps first to display the status of your processes.
In the following example, the " sleep n " command simply causes a process to "go to sleep" for n number of seconds. We enter two commands, sleep and who , on the same line, as a background process.
%(sleep 60; who)&
[1] 21087 %ps
PID TTY TIME COMMAND 20055 4 0:10 sh 21087 4 0:01 sh 21088 4 0:00 sleep 21089 4 0:02 ps %kill 21088
Terminated % tom tty2 Aug 30 11:27 grace tty4 Aug 30 12:24 tim tty5 Aug 30 07:52 dale tty7 Aug 30 14:34
We decided that 60 seconds was too long a time to wait for the output of who . The ps listing showed that sleep had the process ID number 21088, so we used this PID to kill the sleep process. You should see a message like "terminated" or "killed"; if you don't, use another ps command to be sure the process has been killed.
The who command is executed immediately, since it is no longer waiting on sleep ; it lists the users logged into the system.
Some processes can be hard to kill. If a normal kill of these processes is not working, enter " kill -9 PID ". This is a sure kill and can destroy almost anything, including the shell that is interpreting it.
In addition, if you've run an interpreted program (like a shell script), you may not be able to kill all dependent processes by killing the interpreter process that got it all started; you may need to kill them individually. However, killing a process that is feeding data into a pipe will generally kill any processes receiving that data.