Macでアプリを強制終了する方法:ショートカット、Dock、ターミナル
Macでアプリを強制終了するには、Option-Command-Esc を押し、「アプリケーションの強制終了」ウインドウでアプリを選んで 強制終了 をクリックします。同じウインドウは Appleメニュー › 強制終了 からも開けますし、DockのアプリアイコンをControlキーを押しながらクリックして 強制終了 を選ぶ方法もあります。ただし先に Command-Q で普通に終了してみてください。Appleの説明にあるとおり、通常の終了ならアプリは変更の保存など必要な処理を済ませられますが、強制終了ではそれができません。
強制終了は、応答しなくなった1つのアプリのための操作です。Mac全体が固まる、あるいは勝手に再起動する場合は別の問題で、Macがフリーズする、繰り返しクラッシュするで扱っています。
強制する前に、まず普通に終了する
レインボーカーソルが回っているアプリは、止まっているのではなく処理中なだけのことがよくあります。大きな書き出し、同期、遅いネットワークドライブなどでしばらくウインドウが固まり、そのあと回復することがあります。強制終了する前に、次を試します。
- 保存、書き出し、コピーの途中だったなら、1分ほど待ちます。
- 別のアプリのウインドウをクリックします。ほかが反応するなら、問題はそのアプリだけです。
- 元のアプリに戻って Command-Q を押すか、メニューバーのアプリメニューから 終了 を選びます。開いている書類を保存するか尋ねられることがあります。
- 十分に待っても何も起きなければ、強制終了します。
通常の終了と強制終了は、速さが違うだけの同じ操作ではありません。通常の終了はアプリに自分で閉じるよう頼むので、アプリは書類、設定、キャッシュを整合した状態で書き込めます。強制終了はプロセスを即座に終わらせるため、まだディスクに書き込まれていなかった内容は失われます。
アプリを強制終了する4つの方法
| 方法 | 手順 | 向いている場面 |
|---|---|---|
| キーボード | Option-Command-Esc を押し、アプリを選んで 強制終了 をクリック | アプリのウインドウが画面を覆っている、またはメニューバーに届かない |
| Appleメニュー | Appleメニュー › 強制終了 を選び、アプリを選んで 強制終了 をクリック | マウスは使えるがアプリは操作できない |
| Dock | DockのアプリアイコンをControlキーを押しながらクリックし、強制終了 を選ぶ | アプリのアイコンがDockにある |
| アクティビティモニタ | プロセスを選び、停止ボタンをクリックして 強制終了 を選ぶ | アプリにウインドウもDockアイコンもない、またはヘルパープロセスである |
Touch Bar付きのMacでは、EscはTouch Barの左端にあります(Apple)。Dockについては、AppleのDockのガイドが、応答しなくなったアプリをControlキーを押しながらクリックして終了する方法を説明し、保存していない変更が失われることがあると注意しています。
応答しなくなったのがFinderなら、「アプリケーションの強制終了」ウインドウで Finder を選び、再度開く をクリックします。FinderはmacOSの一部で自動的に再起動するため、完全に終了させることはありません。
ヘルパーやバックグラウンドプロセスにはアクティビティモニタを使う
「アプリケーションの強制終了」ウインドウに出るのは、画面を持つアプリだけです。実際の問題の多くは、ウインドウのないプロセスから起きます。ブラウザのレンダラ、同期ヘルパー、メニューバーのユーティリティ、アップデータなどです。アクティビティモニタならそれらがすべて見えます。
- アプリケーション › ユーティリティ から アクティビティモニタ を開きます。
- 対象のプロセスを探します。応答していないプロセスには (応答なし) と付き、赤で表示されます(アクティビティモニタのガイド)。
- それを選び、ウインドウ左上の停止ボタンをクリックします。
- まず 終了 を選びます。Appleによると、これはアプリで ファイル › 終了 を選ぶのと同じで、終了するとデータが失われたり別のアプリに影響したりする場合、プロセスは終了しません。
- 終了 で何も起きないときだけ 強制終了 を選びます。プロセスはすぐに終了し、開いているファイルのデータが失われることがあり、そのプロセスを使うほかのアプリに問題が出ることもあります。
ほかのユーザーやシステムに属するプロセスもあり、それらに対してはアクティビティモニタが管理者パスワードを求めることがあります。このダイアログは、パスワードを入れて進む合図ではなく、立ち止まってプロセスの正体を確かめる合図です。名前からアプリをたどる方法は、見慣れないMacのプロセスを調べる方法で説明しています。
ターミナルのkillとkillallは最後の手段
ターミナルのコマンドはアクティビティモニタと同じことをしますが、安全装置はそれより少なくなります。画面上のツールが反応しないときに限り、正体を確認したプロセスにだけ使ってください。
次のコマンドは確認するだけで、何も変更しません。
pgrep -il appname
ps -axo pid,comm | grep -i appname
appname はアプリ名の一部に置き換えます。最初の列の数字であるPIDを控えておきます。
プロセスに終了を求めるには、次を実行します。
kill PID
killall AppName
killall のマニュアルページ(man killall)によると、このコマンドは既定で、名前が一致する自分所有のすべてのプロセスにTERMシグナルを送ります。TERMはプロセスに終了を求めるもので、行儀のよいアプリなら後片付けをしてから終わります。killall は名前で照合するため、複数のプロセスに当たることがあります。Helper のような名前なら、いくつものアプリのヘルパーに一致しかねません。
TERMで終わらない場合、強制版はKILLを送ります。signal のマニュアルページ(man signal)にあるとおり、KILLは捕捉も無視もできないので、プロセスには後片付けの機会がありません。
kill -9 PID
KILLはターミナル版の強制終了です。保存していない書類は失われ、ファイルの書き込み途中で止められたアプリはそのファイルを壊すことがあります。自分の所有ではないプロセスを止めるために sudo を付けないでください。root所有のプロセスはたいていmacOS本体、セキュリティ製品、デバイス管理の一部で、止めるとネットワーク、ログイン、バックアップが動かなくなることがあります。
強制終了で失われうるもの
| 対象 | 強制終了したあと |
|---|---|
| 開いている書類の未保存の変更 | 失われる。アプリがすでに自動保存していた分は残る |
| 書き込み中のファイル | 不完全または破損している可能性がある。使う前に確認する |
| 進行中のダウンロード、書き出し、アップロード | たいてい止まる。アプリを開き直してからやり直す |
| このセッションで変えたアプリの設定 | アプリがまだ保存していなければ失われることがある |
| そのプロセスに依存するほかのアプリ | 再接続するか開き直すまでエラーが出ることがある |
開き直したら、作業していた書類を確認してください。アプリに復元用のフォルダやバージョン履歴があるなら、作業をやり直す前にそこを見ます。
アプリが何度も開き直される場合
強制終了が止めるのは、いま動いているプロセスの1つだけです。それを起動しているものまでは止めません。強制終了した数秒後にアプリやヘルパーが戻ってくるなら、何かが起動し直しています。
- ログイン項目。 システム設定 › 一般 › ログイン項目と機能拡張 を開き、ログイン時に開く と バックグラウンドでの実行を許可 を確認します。Appleはログイン時に項目を自動的に開くで説明しています。
- LaunchAgentとLaunchDaemon。
~/Library/LaunchAgents、/Library/LaunchAgents、/Library/LaunchDaemonsにあるplistが、プロセスを生かし続け、終了するたびに再起動するようlaunchdに指示していることがあります。 - 親アプリ。 メインのアプリ、同期クライアント、ベンダーのアップデータに属するヘルパーもあり、そのアプリが再起動させます。
launchdが生かし続けるよう設定されたプロセスを何度強制終了しても、再起動のループになるだけです。該当するログイン項目やバックグラウンド項目をオフにするか、ヘルパーを持つアプリを終了してください。両方の一覧はMacの起動時に開くプログラムを無効にする方法で、アプリを消したあとも残るヘルパーはアンインストール後もアプリが動き続ける場合で扱っています。
Moleのステータスページからプロセスを止める
Moleを使っているなら、その ステータス ページに、動作中のアプリとプロセスがCPUとメモリの使用量付きで並びます。行の省略記号をクリックするか、Controlキーを押しながら行をクリックすると、終了 と 強制終了 が表示されます。
- 動作中のアプリに対する 終了 は、通常の方法で終了するよう頼むので、アプリは自分の保存ダイアログを出せます。アプリを持たないプロセスにはTERMを送ります。
- 強制終了 はKILLを送ります。Moleはどちらの操作の前にも確認を求め、強制終了では未保存のデータが失われる可能性があると伝えます。
rootやシステムアカウントに属するプロセス、/System などシステムのパスにある実行ファイル、Finder、Dock、WindowServer、名前がVPN、プロキシ、セキュリティ、デバイス管理のツールに一致するプロセスについては、Moleはどちらの操作も出しません。そうした行にはボタンの代わりに注記が出ます。やっていることはアクティビティモニタと同じで、LaunchAgentがそのプロセスをまた起動するのを止めるわけではありません。
やってはいけないこと
- カーソルが回っているというだけで、保存中や書き出し中のアプリを強制終了しない。
- CPUやメモリの数字が高いというだけで、見慣れないプロセスを強制終了しない。先に持ち主を確かめる。
- 一般的な名前で
sudo killallを実行しない。 - 毎日固まるアプリを、強制終了で解決したと考えない。アップデートし、プラグインを確認し、再現できる状況を開発元に報告する。
アップデートと再起動のあとも固まり続けるアプリについて、Appleのアプリのトラブルシューティング手順は、終了して開き直す、Macを再起動する、アプリとmacOSのアップデートを入れる、それでもだめならアプリを削除して再インストールする、という順番を示しています。アプリを削除すると、アプリ内に保存されたデータも消えることがあるという注意付きです。
よくある質問
Macで強制終了するショートカットは?
Option-Command-Esc を押します。「アプリケーションの強制終了」ウインドウが開くので、アプリを選んで 強制終了 をクリックします。WindowsのControl-Alt-Deleteに当たる操作です。
キーボードが効かないとき、Macでアプリを強制終了するには?
マウスを使います。Appleメニュー › 強制終了 を選ぶか、DockのアプリアイコンをControlキーを押しながらクリックして 強制終了 を選びます。何も反応しない場合の最後の手段として、Appleは電源ボタンをMacの電源が切れるまで最大10秒押し続ける方法を挙げています。すべてのアプリの未保存の作業は失われます。
アプリを強制終了すると、アプリやそのデータは削除されますか?
いいえ。動いているプロセスを終わらせるだけです。アプリも保存済みのファイルもそのまま残り、失われるのはまだ保存されていなかった変更だけです。
強制終了したアプリが戻ってくるのはなぜですか?
ログイン項目、LaunchAgent、親アプリのいずれかがもう一度起動しています。ログイン項目と機能拡張 で該当する項目をオフにするか、それを持つアプリを終了してください。