I want to quit certain applications on my Mac using Terminal. For example, how do I kill “Slack”? Do I need its PID number?


No, you do not need to know its PID.

You can use:

pkill -x Slack


killall Slack

Note: Be sure to read the manual page for whichever command you choose to use, in order to see the various options available to the command, as may be relevant to its particular usage. In Terminal type e.g. man pkill and press enter, or just type the command and right-click on it, then select: Open man Page

| improve this answer | |

You can use AppleScript to tell the application to quit:

osascript -e 'quit app "Slack"'

this will tell the application to quit and will start all the save and cleanup tasks. Or you can send the TERM signal with pkill but it could be that the application will not shut down cleanly

pkill -x Slack
| improve this answer | |
  • 9
    This is the best method, because it replicates what happens when you use File>Quit from the menu. – Barmar Mar 28 '19 at 16:15
  • 5
    Huh. I've always used osascript -e 'tell application "Slack" to quit' but if the shorter syntax works, then that's obviously preferable. This is definitely a better answer than anything suggesting kill or any of its variants. – TJ Luoma Mar 30 '19 at 2:58
  • @TJLuoma I think if you select the correct signal, then pkill is as graceful as any other method. I too favour the AppleScript, though created a function quit to make it breezy. However, if creating an AppleScript process isn’t necessary, pkill -QUIT -x Slack should be fine. – CJK Apr 17 '19 at 20:50

Since I don't yet have the reputation to comment, I'm saying this as a separate answer. pkill without any flags does not match a specific process! For example, running pkill foo would target processes named foo, but would also target processes named foobar. This is because it uses regular expressions.

If you wish to kill a specific process, you can pass it the -x flag. For example, pkill -x foo. This will use exact names instead of regular expressions.

For example, in your case, pkill -x Slack will do the trick.

| improve this answer | |

You can install htop (via brew for instance).

You'll need to run this as root or with sudo. Essentially, it's a text based Activity Monitor.

Select the process you want to kill (either with arrow keys or a mouse).

Then press k to send the process a signal and then 9 to choose the SIGKILL signal.

| improve this answer | |

I'm not sure for Slack, but some Applications will run multiple Processes and you may want to kill just one (I find I often need to do this with iTunes, for example). In that case, you can run

ps -e | grep -i slack

To find all Processes with case-insensitive "slack" in the name. The output should look like (without the header):

649 pts/1    00:00:00 bash

That first column will be your PID. You can then use that to kill specifically that process:

kill -9 649

Replacing 649 with your PID you found from calling ps.

| improve this answer | |
  • 2
    kill sends a signal to terminate the app. It is not necessary to use -9 (kill) if the application is responding. You risk to loose unsaved data – Matteo Mar 28 '19 at 17:58
  • Similarly, if you did happen to want to kill, say, all 5 instances of some named process, you could filter the output of ps on the CMD value and then kill all the first entries on those lines. – Carl Witthoft Mar 29 '19 at 14:59
  • 1
    @Carl Witthoft, you can simply use killall procname, e.g. killall Slack and it will kill all occurrences of Slack or whatever procname is. No need to use ps! – user3439894 Mar 29 '19 at 22:26
  • So, pgrep is a nice command that combines ps and grip. – Harv Apr 3 '19 at 0:47

No, you can use pkill to terminate a running application. For example -

pkill Notes

If this fails, there is an alternate way

Get the process ID of the app using pgrep. For example -

pgrep Notes

Then to quit the app use

kill <process ID>
| improve this answer | |

If the application has a log name, make sure to give the full name which is listed in applications

e.g. close and then reopen

osascript -e 'quit app "Cisco AnyConnect Secure Mobility Client.app"'

open /Applications/Cisco/Cisco\ AnyConnect\ Secure\ Mobility\ Client.app/

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .