Everyone knows how to kill a program using
Task Manager in Windows or Force Quit in OS X, but sometimes it’s useful
to kill a program using the command line. I’ve run into several
situations where the program refused to end via Task Manager, even when I
tried to kill the underlying process. Force Quit has it’s own quirks
and doesn’t always kill a program like it should. That’s when you can
use the power of the command line.
In this article, I’ll go through the commands for killing a program
in Windows, OS X and Linux. Interestingly, there is usually more than
one command for accomplishing this, so I’ll try to mention the different
ones that I have used. It’s not an exhaustive list, so if you use a
different command not mentioned here, please let us know in the
comments.
Windows – TSKILL and TASKKILL
In Windows, you can use two commands to kill a program: TSKILL and
TASKKILL. TSKILL is a simpler and less powerful command, but does the
job just fine. For example, if you’re running Microsoft Word, the
process name is winword.exe. To kill Word from the command line just
type the following command:
tskill winword
That will kill Word and you will lose any unsaved data, so you have
to be careful using it. I tried it out on an unsaved Word doc and it
just disappeared when I ran this, no prompts to save the documents. This
is pretty much true of all the commands I’m going to mention here as
that’s kind of the point. You can to kill a program instantly without
any questions.
One thing to note is that most of the time that this command is used,
it’s used with the /A parameter. /A tells the command to end the
process running under all sessions. So typically you would type the
following command to be extra sure the process is killed:
tskill /A winword
The second command, which has more options and is more powerful, is
TASKKILL. If you look at the help page for TASKKILL, you see what I
mean:
If you want to have more control and options for killing a program in
Windows, use TASKKILL. For starters, you can kill a program by using
the following command:
taskkill /F /IM winword.exe
Note that you have to use .EXE when using the TASKKILL command. /F
means to forcefully terminate the process forcefully. /IM means the
image name, i.e. the process name. If you want to kill using the process
ID (PID), you have to use /PID instead of /IM. /T is great because it
will kill all child processes started by the specified process.
You can also use TASKKILL to remotely connect to another system and
kill a process on that remote system. What I also like is the ability to
use wildcards in TASKKILL.
OS X/Linux – KILL and KILLALL
In OS X and Linux, you have two commands for killing processes: KILL
and KILLALL. You have to run these in the terminal window. In order to
kill a program, you either have to use the program name or the process
ID. There are some ways you can find this info. One way is via the
Activity Monitor.
However, that requires the GUI interface. If you are using the
command line to kill a process, you can use the command line to find the
process info also. Two commands that come to mind are top and ps -ax.
top will give you a list of processes with the PID
and the program name also sorted by CPU usage. It’s a quick way to find
the process you want to kill. ps -ax will give you a listed sorted by PID and the path of the program. It’s slightly different than top.
Now for killing the program in OS X. You can simply type the following command to kill a specific process:
kill -9 83002
83002 is the Terminal process and the 9 means to kill the process.
You can use other numbers like 3, which means Quit, or 6, which means
Abort. Mostly, though, you’ll be sticking with 9. You can also use the
KILL command to kill all running processes, though you should probably
never use this command.
kill -TERM -1
Where KILL is useful for killing one process or all processes,
KILLALL is using for killing a group of processes. For example, if
you’re running Google Chrome, you might have 10 Chrome processes
running. It would be really annoying to use KILL ten times to shut down
Chrome. Instead, you could use KILLALL like so:
killall Evernote
or
killall 'Google Chrome'
Note that you have to use the single quotes or anything longer than
one word. Also, if the process is not running under your name, but is
instead running under root, you have to use the following command:
sudo killall 'Google Chrome'
or
sudo killall -9 'Google Chrome'
Again, the 9 is sending the specific signal to KILL rather than TERM.
Sudo is only needed if you get an error about not having permission.
Otherwise you can do killall program or killall -9 program.
On OS X, the KILLALL command comes in really handy when you can’t force
quit a program. You don’t have to know the process ID, which is nice.
Just type in the name and all processes will be killed associated with
that name.
No comments:
Post a Comment