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:
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 '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'
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.
This article was meant to give you more advanced methods for killing a program in Windows, OS X and Linux. If you have any questions about killing a program using the command line, post a comment and I’ll try to help. Enjoy!