結論

Macでアプリを強制終了するには、Option+Command+Escを押し、アプリを選んで「強制終了」をクリックします。保存していない変更は失われることがあります。

この記事でわかること

  • 強制終了の6つの方法と手順の早見表
  • 固まったときに試す順番4段階と本体の強制再起動
  • SIGTERMとSIGKILLで後片付けが走る違いの実測5通り

2026年10月23日更新|Appleサポートで手順確認・Python 3.11で実測

アプリが固まったら、まずふつうに終了し、効かなければ強制終了、それでも駄目なら Mac 本体を再起動します。Apple サポートの説明も、この順番です。

flowchart TD
    A[アプリが固まった] --> B[Command+Q<br>ふつうに終了]
    B -->|終わらない| C[Option+Command+Esc<br>強制終了]
    C -->|終わらない| D[アップルメニュー<br>再起動]
    D -->|操作できない| E[電源ボタンを<br>約10秒長押し]

急いでいる人向けに、方法を先にまとめます。上から順に試します。

状況 方法 詳しい節
アプリが反応しない Option+Command+Esc →「強制終了」 方法1
キーが効かない・マウスは動く アップルメニュー →「強制終了」 方法2
Dock にアイコンがある Control+クリック →「強制終了」 方法3
裏で動く処理を止めたい アクティビティモニタ →「強制終了」 方法4
コマンドで止めたい ターミナルで kill PID・kill -9 PID 方法5
Finder が固まった 強制終了ウインドウで「再度開く」 Finder
Mac 全体が動かない 電源ボタンを約10秒長押し 方法6
何度も固まる アップデート・再インストール・セーフモード 何度も固まるとき

確認環境:Mac の操作(キー・メニュー名・ボタン名・電源ボタンの秒数)は、Apple サポートの「Macでアプリを強制的に終了する方法」「Macのキーボードショートカット」「Macのアクティビティモニタでアプリまたはプロセスを終了する」「Macをシステム終了する/再起動する」「MacでDockを使用する」「Mac のアプリが反応しない/予期せず終了する/開かない場合」「Macをセーフモードで起動する」で確かめました。macOS の kill・killall・pgrep は Apple が公開しているソース(shell_cmds・adv_cmds)の man ページ、シグナルの番号は macOS のカーネル(xnu)の signal.h、Windows は Microsoft サポートと Microsoft Learn で確かめました。シグナルの動きは、Ubuntu 24.04.4 LTS(Linux カーネル 6.18)で Python 3.11.15 のプログラムを動かし、bash 5.2.21 の kill・procps-ng 4.0.4 の ps・GNU coreutils 9.4 の timeout で、自分で起動したプロセスに PID を指定して送りました(確認日 2026年10月23日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Mac 強制終了の方法|アプリが固まった時のショートカットとできない時の対処」

Macの強制終了とは(ふつうの終了との違い)

この節では、「終了」と「強制終了」が何が違うのかと、強制終了を使ってよい場面が分かります。

ふつうの終了は、アプリに「終わって」と頼み、アプリが保存や後片付けをしてから終わります。強制終了は、アプリの返事を待たずに、その場で終わらせます。 Apple のアクティビティモニタのガイドも、「終了」はプロセスが安全に終了できるときに終了し、「強制終了」は即座にプロセスを終了させる、と説明しています。

アプリが固まっていないとき

強制終了保存の確認が出ないまま終わる。編集中の内容が失われることがある
↔
ふつうの終了Command+Q。保存していなければ確認が出る

ふつうに終われるアプリには、ふつうの終了を使う

アプリが反応しないとき

ふつうの終了アプリが返事をしないので、終わらないことがある
↔
強制終了アプリの返事を待たずに終わらせる

強制終了は、ふつうの終了が効かないときの手段

比べる点 ふつうの終了 強制終了
操作 Command+Q・アプリのメニューの「終了」 Option+Command+Esc・アップルメニューの「強制終了」
アプリの後片付け する(保存の確認・設定の書き込み) させずに終わらせる
保存していない変更 保存するかを聞かれる 失われることがある
使う場面 いつでも 反応しない・終われないとき

「強制終了」という言葉は、アプリの強制終了と、Mac 本体の電源を強制的に切ることの両方に使われます。 この記事では、アプリを終わらせることを「強制終了」、電源ボタンの長押しなどで Mac 本体を止めることを「本体の強制終了・強制再起動」と書き分けます。

固まったときに試す順番

この節では、アプリや Mac が固まったときに、どの操作をどの順に試せばよいかが分かります。

軽い操作から順に試します。 後の操作ほど、失われるものが増えます。Apple サポートの「Macでアプリを強制的に終了する方法」も、ふつうの終了 → 強制終了 → 再起動 → 電源ボタンの長押し、の順で説明しています。

  1. 1少し待ってから Command+Q大きなファイルの読み込み中などで、一時的に止まって見えるだけのことがある。終われば保存の確認も出る
  2. 2Option+Command+Esc で強制終了固まったアプリだけを終わらせる。ほかのアプリは動いたまま
  3. 3アップルメニューから「再起動」強制終了できないとき。ほかのアプリは保存の確認が出る
  4. 4電源ボタンを約10秒長押し画面もポインタも動かないとき。すべてのアプリの未保存の変更が失われることがある

Macでアプリを強制終了する方法(6つ)

この節では、アプリを強制終了する6つの方法を、それぞれの手順と向いている場面で比べられます。

方法 操作 向いている場面
1. ショートカット Option+Command+Esc いちばん早い。キーボードが効くとき
2. アップルメニュー アップルメニュー →「強制終了」 キーが効かずマウスが動くとき
3. Dock アイコンを Control+クリック →「強制終了」 固まったアプリが Dock にあるとき
4. アクティビティモニタ 選んで停止ボタン →「強制終了」 画面の無い処理・重い処理を探して止める
5. ターミナル kill・kill -9・killall コマンドで止める・名前でまとめて止める
6. 本体の強制再起動 電源ボタンの長押しなど Mac 全体が反応しないとき

方法1:Option+Command+Esc(強制終了のショートカット)

Option・Command・Esc の3つのキーを同時に押すと、「アプリケーションの強制終了」のウインドウが開きます。 Apple サポートでは、キーを「option(または alt)、command、esc」と書いています。キーボードによっては Option キーに「alt」と書かれています。

1

3つのキーを同時に押す

Option(alt)+Command+Esc。強制終了のウインドウが開く。

キー

2

反応しないアプリを選ぶ

一覧から、固まっているアプリをクリックして選ぶ。

選択

3

「強制終了」をクリック

選んだアプリが終わる。

実行

  • Touch Bar のある Mac では、Esc キーは Touch Bar の左端にあります(Apple サポート)。
  • キーボードショートカットの一覧(Apple サポート「Macのキーボードショートカット」)でも、option+command+esc は「アプリを強制終了する」と書かれています。
  • 強制終了のウインドウは、アプリを終わらせたあとも画面に残ります。使い終わったら閉じます。

方法2:アップルメニューから「強制終了」

画面の左上のアップルメニュー(リンゴのマーク)をクリックし、「強制終了」を選ぶと、方法1と同じウインドウが開きます。 キーボードが効かないときや、ショートカットを覚えていないときに使えます。開いたあとの操作は方法1と同じです。

方法3:Dockのアイコンから強制終了

Dock の、固まったアプリのアイコンを Control キーを押しながらクリック(右クリック)し、「強制終了」を選びます。 Apple サポートの「MacでDockを使用する」は、アプリが反応しなくなった場合の操作としてこの方法を挙げ、保存していない変更が失われることがある、と書いています。

方法4:アクティビティモニタで強制終了(Macのタスクマネージャー)

アクティビティモニタは、Mac で動いているアプリと処理(プロセス)の一覧を見るアプリで、Windows のタスク マネージャーにあたります。 画面を持たない裏の処理も一覧に出るので、どれが重いのかを見てから止められます。

1

アクティビティモニタを開く

Command+スペースで Spotlight を開き、「アクティビティモニタ」と入力して開く。

開く

2

「プロセス名」の一覧で選ぶ

反応しないものは「(応答なし)」と赤く表示される。列の見出しをクリックすると並べ替えられる。

選択

3

左上の「停止」ボタンをクリック

ウインドウの左上にあるボタンを押す。

停止

4

「終了」か「強制終了」を選ぶ

まず「終了」を試し、終わらなければ「強制終了」を選ぶ。

実行

Apple のガイドによる、アクティビティモニタの補足です。

  • 「終了」は、アプリのメニューの「ファイル」>「終了」と同じ操作です。「強制終了」は即座に終了させるので、ファイルを開いているとデータが失われるおそれがあり、ほかのアプリやプロセスがそのプロセスを使っていると問題が起きることがあります。
  • 自分が所有していないプロセスを終わらせるときは、管理者の認証を求められることがあります。
  • 「表示」>「すべてのプロセス(階層表示)」を選ぶと、そのプロセスをほかのプロセスが使っているかを確かめられます。
  • 「表示」>「シグナルをプロセスに送信」を選ぶと、シグナル(後の節で説明する、OS がプロセスに送る合図)を選んで送れます。

方法5:ターミナルの kill・killall で強制終了

ターミナルでは、プロセスの番号(PID)を指定して kill で終わらせます。kill だけなら「終了の依頼」(TERM)、kill -9 なら「強制終了」(KILL)です。 ターミナルは、Finder の「/アプリケーション/ユーティリティ」フォルダにあります(Apple サポート「Macで「ターミナル」を開く/終了する」)。

pgrep -l アプリ名        # 名前の一部が合うプロセスの PID と名前を表示(-x で名前の完全一致)
kill 1234                # PID 1234 に TERM を送る(終了の依頼。後片付けができる)
kill -9 1234             # PID 1234 に KILL を送る(強制終了。後片付けはできない)
killall アプリ名         # 名前が合う自分のプロセスに TERM を送る
killall -KILL アプリ名   # 名前が合う自分のプロセスに KILL を送る

macOS の man ページ(Apple が公開している shell_cmds・adv_cmds のソース)によると、次のとおりです。

コマンド 何を指定するか 既定のシグナル
kill PID(番号) TERM。-9 か -s KILL で KILL
killall プロセスの名前 TERM。呼び出した人と同じユーザーのプロセスが対象
pgrep 名前の一部(-x で完全一致) 送らない。PID を表示するだけ
pkill 名前の一部 TERM
  • killall と pkill は、名前が合うものを全部終わらせます。 同じ名前のプロセスが複数あると、全部に送られます。先に pgrep -l で、何が合うかを確かめてから使います。
  • killall -d アプリ名 は、何をするかを表示するだけで、シグナルは送りません(man ページ)。
  • 他のユーザーやシステムのプロセスは、sudo を付けないと終わらせられません。システムのプロセスを止めると Mac 全体が不安定になることがあるため、自分で起動したアプリだけを対象にします。

Linux での kill のオプションとシグナルの一覧は、関連記事「Linux killコマンドの使い方|シグナル一覧とkill -9・pkill」で扱っています。

方法6:Mac本体の強制再起動・電源を強制的に切る

アプリを強制終了できないときは、アップルメニューから「再起動」を選びます。画面もポインタも反応しないときは、電源ボタンを Mac の電源が切れるまで(最大10秒ほど)押し続けます。 Touch ID のあるノートブックでは、Touch ID ボタンを長押しします。もう一度押して離すと電源が入ります(Apple サポート)。

操作 何が起きるか 保存の確認
アップルメニュー →「再起動」 ふつうに再起動 出る
電源ボタンを長押し(約10秒) 電源を強制的に切る 出ない
Control+Command+電源ボタン 強制的に再起動 出ない
Control+Option+Command+電源ボタン 全アプリを終了してシステム終了 出る
Control+電源ボタン 再起動・スリープ・システム終了を選ぶダイアログ ―

キーの組み合わせ(下の3行)は、Apple サポートの「Macのキーボードショートカット」で「Touch ID 非搭載の内蔵キーボード」の電源ボタンとして書かれているものです。Control+Command+電源ボタンについては、未保存の書類があっても確認は表示されない、とされています。

電源ボタンの長押しは、ほかの方法がすべて効かないときに使います。 開いているすべてのアプリの保存していない変更が失われることがあります。

Finderが固まったときの強制終了(再度開く)

この節では、Finder(ファイルを扱うアプリ)が反応しないときの操作が分かります。

Finder は常に開いているアプリなので、強制終了のウインドウで Finder を選ぶと、ボタンが「再度開く」になります。 「再度開く」をクリックすると、Finder が終わってすぐに開き直されます(Apple サポート)。方法1か方法2で強制終了のウインドウを開いて操作します。

強制終了で失われるもの・失われないもの

この節では、強制終了したときに何が消えて、何が残るのかが分かります。

強制終了で失われるのは、保存していない変更です。保存済みのファイルは消えません。 Apple サポートも、強制終了やアクティビティモニタの説明で、保存していない変更やデータが失われることがある、と書いています。

失われることがあるもの

最後に保存してから後の編集内容

アプリが終了時に書き込むはずだった設定・履歴

ダウンロード・書き出しなど途中の処理

残るもの

保存済みのファイル

ほかのアプリ(アプリの強制終了なら)

自動保存に対応したアプリが保存していた分

後の節の実測では、3行ごとに自動保存するプログラムを4行目の入力後に止めると、ふつうの終了(TERM)では4行すべてが保存され、強制終了(KILL)では最後の自動保存の3行だけが残り、4行目は失われました。強制終了の前に、別のアプリで同じファイルを開ける場合は内容をコピーしておく、画面の写真を撮っておく、などで失われる量を減らせます。

何度も固まるときの対処(Apple公式の範囲)

この節では、同じアプリが何度も固まる・Mac が何度も止まるときに、Apple サポートが案内している対処が分かります。

Apple サポートの「Mac のアプリが反応しない/予期せず終了する/開かない場合」は、アプリを終了して開き直す → Mac を再起動する → アップデートする → アプリを削除して入れ直す、の順で案内しています。

  • 1アプリを終了して開き直す終了できなければ強制終了する
  • 2Mac を再起動するアップルメニュー →「再起動」
  • 3アプリと macOS をアップデートするApp Store のアプリは App Store の「アップデート」、それ以外は開発元の Web サイトで確認
  • 4アプリを削除して入れ直す削除するとアプリのデータが消える場合がある
  • 5セーフモードで起動して様子を見るログイン項目などを読み込まずに起動する(下の表)
  • 6アプリの開発元に問い合わせるApple の案内でも最後の手段として挙げられている

セーフモードで起動する

セーフモードは、Mac を最小限の状態で起動するモードです。 Apple サポートによると、macOS に必要でないログイン項目・機能拡張・macOS が入れたもの以外のフォントを読み込まず、起動ディスクの基本的なチェックと、一部のシステムキャッシュの消去を行います。セーフモードで固まらなければ、起動時に読み込まれる何かが原因の候補になります。

Mac の種類 起動のしかた(Apple サポート)
Apple シリコン搭載 電源を切る → 電源ボタンを起動オプションが出るまで長押し → 起動ディスクを選ぶ → Shift を押したまま「セーフモードで続ける」
Intel 搭載 電源を入れた直後から Shift を押し続け、ログインウインドウが出たら離す
  • ログインウインドウの右上に、赤い字で「セーフブート」と出ることがあります。
  • 終わるときは、アップルメニューから「再起動」を選びます。
  • セーフモードでは、Wi-Fi・オーディオ・ファイル共有など一部の機能が使えないことがあります。

WindowsのCtrl+Alt+Deleteとの対応表

この節では、Windows で使っていた操作が Mac では何にあたるかが分かります。

Windows 側のタスクマネージャーの開き方と使い方は、関連記事「タスクマネージャーの開き方|ショートカット7つと使い方・開かない時の対処」で扱っています。

Windows の Ctrl+Shift+Esc(タスク マネージャー)に近い Mac の操作は、Option+Command+Esc(強制終了)とアクティビティモニタです。 Ctrl+Alt+Del の画面と同じ役割の1つの画面は Mac にはなく、ロック・ログアウトは別のショートカットです。

やりたいこと Windows Mac
固まったアプリを終わらせる画面 Ctrl+Shift+Esc(タスク マネージャー) Option+Command+Esc
ロック・サインアウト等の画面 Ctrl+Alt+Del 同じ1画面は無い(下の2行)
画面をロック Ctrl+Alt+Del の画面から Control+Command+Q
ログアウト Ctrl+Alt+Del の画面から Shift+Command+Q
ふつうに閉じる・終了 Alt+F4(作業中のウィンドウを閉じる) Command+Q(アプリを終了)
処理の一覧と使用率 タスク マネージャー アクティビティモニタ
コマンドで終了 taskkill /pid 番号 kill 番号
コマンドで強制終了 taskkill /f /pid 番号 kill -9 番号
名前で終了 taskkill /im 名前 killall 名前

Windows 側は Microsoft サポートの「Windows のキーボード ショートカット」と Microsoft Learn の taskkill のページ、Mac 側は Apple サポートの「Macのキーボードショートカット」と macOS の man ページによるものです。Mac の Command+W は「最前面のウインドウを閉じる」で、アプリは終わらないことがあります。

「強制終了」の中身:SIGTERMとSIGKILLの違いを実物で確かめる

この節では、「終了」と「強制終了」で、アプリの中で何が起きているのかを、シグナルという仕組みで確かめます。

macOS も Linux も、OS がプロセスに送る「シグナル」という合図で、プロセスの終了を扱います。TERM(SIGTERM)は「終わって」という依頼で、アプリは受け取って後片付けができます。KILL(SIGKILL)は OS がその場で終わらせるもので、アプリは受け取れません。 macOS の kill の man ページも、9 KILL を「non-catchable, non-ignorable kill」(受け取れず、無視もできない)、15 TERM を「software termination signal」と書いています。

flowchart TD
    T[kill PID<br>TERM] --> H[アプリの処理が<br>受け取る]
    H --> C[保存・後片付け<br>してから終わる]
    K[kill -9 PID<br>KILL] --> O[OSが<br>その場で消す]
    O --> L[未保存の内容と<br>後片付けが残らない]

画面の「強制終了」が内部でどのシグナルを使うかは、Apple の文書には書かれていません。ただ、アクティビティモニタには「シグナルをプロセスに送信」があり、Mac のアプリも同じ仕組みの上で動いています。ここでは、ターミナルの kill と kill -9 の違いとして確かめます。

主なシグナルの早見表(macOS と Linux)

名前 意味 受け取って後片付けできるか 番号 macOS/Linux
TERM(SIGTERM) 終了の依頼。kill の既定 できる 15/15
KILL(SIGKILL) 強制終了 できない(無視もできない) 9/9
INT(SIGINT) 割り込み。Ctrl+C できる 2/2
HUP(SIGHUP) 端末が閉じた できる 1/1
STOP(SIGSTOP) 一時停止 できない 17/19
CONT(SIGCONT) 一時停止から再開 できる 19/18

番号は macOS のカーネル(xnu)の signal.h と、Linux の man ページ(signal(7)、x86・ARM)によるものです。TERM と KILL の番号(15 と 9)はどちらも同じですが、STOP などは番号が違います。 番号ではなく名前(kill -TERM・kill -KILL)で書くと、どちらでも同じ意味になります。

試したプログラム:編集中のアプリのまね

1秒ごとに1行を「入力」し、3行ごとに自動保存するプログラムを Python で作りました。起動するとロックファイル(editor.lock。アプリが「使用中」の印に作るファイル)を作り、TERM を受け取ると、残りを保存してロックファイルを消してから終わります。

import os, signal, sys, time

mode = sys.argv[1] if len(sys.argv) > 1 else "normal"
LOCK, DRAFT = "editor.lock", "draft.txt"
buf, saved = [], 0

def save(reason):
    global saved
    with open(DRAFT, "w") as f:
        f.write("\n".join(buf) + "\n")
    saved = len(buf)
    print(f"[save] {reason}: {saved} 行を保存", flush=True)

def on_term(signum, frame):
    print(f"[signal] {signal.Signals(signum).name} を受け取った → 後片付けを始める", flush=True)
    save("終了前の保存")
    os.remove(LOCK)
    print("[cleanup] ロックファイルを消した。終了する", flush=True)
    sys.exit(0)

if mode == "ignore":          # 応答しないアプリのまね:SIGTERM を無視する
    signal.signal(signal.SIGTERM, signal.SIG_IGN)
else:
    signal.signal(signal.SIGTERM, on_term)

open(LOCK, "w").write(str(os.getpid()))
print(f"[start] PID {os.getpid()} mode={mode}", flush=True)
try:
    for i in range(1, 100):
        time.sleep(1)
        buf.append(f"line{i}")
        print(f"[edit] line{i} を入力(未保存 {len(buf) - saved} 行)", flush=True)
        if i % 3 == 0:
            save("自動保存")
except KeyboardInterrupt:
    print("[signal] SIGINT(Ctrl+C)→ KeyboardInterrupt", flush=True)
    save("終了前の保存")
    os.remove(LOCK)
    print("[cleanup] ロックファイルを消した。終了する", flush=True)

このプログラムをバックグラウンドで起動し、4.5秒後(4行目を入力した後)に、起動したプロセスの PID を指定してシグナルを送りました。

TERM(kill)を送ったとき:後片付けが走る

$ kill -TERM 2572
exit status: 0
--- アプリの出力
[start] PID 2572 mode=normal
[edit] line1 を入力(未保存 1 行)
[edit] line2 を入力(未保存 2 行)
[edit] line3 を入力(未保存 3 行)
[save] 自動保存: 3 行を保存
[edit] line4 を入力(未保存 1 行)
[signal] SIGTERM を受け取った → 後片付けを始める
[save] 終了前の保存: 4 行を保存
[cleanup] ロックファイルを消した。終了する
--- 残ったファイル
ls: cannot access 'editor.lock': No such file or directory
draft.txt
--- draft.txt の行数: 4

TERM を受け取ったアプリは、4行目まで保存し、ロックファイルを消してから終わりました。 Mac の Command+Q やアクティビティモニタの「終了」で、保存の確認が出てから終わるのと同じ考え方です。

KILL(kill -9)を送ったとき:後片付けが走らない

$ kill -KILL 2698
run.sh: line 10:  2698 Killed                  python3 editor.py "$2" > out.log 2>&1
exit status: 137
--- アプリの出力
[start] PID 2698 mode=normal
[edit] line1 を入力(未保存 1 行)
[edit] line2 を入力(未保存 2 行)
[edit] line3 を入力(未保存 3 行)
[save] 自動保存: 3 行を保存
[edit] line4 を入力(未保存 1 行)
--- 残ったファイル
draft.txt
editor.lock
--- draft.txt の行数: 3

KILL では、アプリの処理(on_term)は1行も動かず、4行目は保存されず、ロックファイルも残りました。 終了の状態は 137(128+9。KILL で終わった印)です。ロックファイルのような後片付けの跡が残るのが、強制終了の特徴です。

4行TERM で残った行数入力した4行すべて保存
3行KILL で残った行数最後の自動保存の分だけ
137KILL の終了の状態128+9。TERM の既定は143

KILL を受け取ろうとするとエラーになる

アプリの側で KILL を受け取る処理を登録しようとすると、OS が受け付けません。

$ python3 -c "import signal; signal.signal(signal.SIGKILL, lambda s,f: print('caught'))"
    handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 22] Invalid argument

Linux の man ページ(signal(7))も、SIGKILL と SIGSTOP は受け取る・止める・無視するのいずれもできない、と書いています。

応答しないアプリ:TERM が効かず、KILL で終わる

TERM を無視するようにしたプログラム(mode=ignore)に、TERM を送ってから KILL を送りました。/proc/PID/status の SigIgn(無視しているシグナル)には、TERM(15番)を表す 0x4000 のビットが立っています。

$ kill -TERM 2761
$ ps -o pid,stat,cmd -p 2761
 2761 S    python3 editor.py ignore
SigIgn: 0000000001005006
SigCgt: 0000000000000000
$ kill -KILL 2761
run.sh: line 10:  2761 Killed                  python3 editor.py "$2" > out.log 2>&1
exit status: 137

TERM を送っても、プロセスは動いたまま(S=待機中)でした。KILL で終わりました。 「終了」を選んでも終わらないアプリに「強制終了」を使うのと同じ関係です。

止まったアプリ:TERM は保留され、KILL は効く

STOP で一時停止させたプロセス(固まって見える状態)に、TERM を送ってから KILL を送りました。

$ kill -STOP 2812
$ ps -o pid,stat,cmd -p 2812
 2812 T    python3 editor.py normal
State:  T (stopped)
$ kill -TERM 2812
$ ps -o pid,stat,cmd -p 2812
 2812 T    python3 editor.py normal
State:  T (stopped)
ShdPnd: 0000000000004000
$ kill -KILL 2812
run.sh: line 10:  2812 Killed                  python3 editor.py "$2" > out.log 2>&1
exit status: 137

止まったプロセスに送った TERM は、届いても処理されずに保留(ShdPnd の 0x4000=TERM)のままでした。KILL では、止まったままでも終わりました。 アプリが固まって自分の処理を動かせない状態では、「終わって」という依頼に応えられないため、強制終了が必要になります。

Ctrl+C(INT)と、「待ってから強制終了」の自動化

INT(Ctrl+C で送られるシグナル)を送ると、Python では KeyboardInterrupt として受け取り、TERM と同じく4行を保存して終わりました。

$ kill -INT 3785
[signal] SIGINT(Ctrl+C)→ KeyboardInterrupt
[save] 終了前の保存: 4 行を保存
[cleanup] ロックファイルを消した。終了する
returncode: 0

「まず TERM で頼み、決めた時間が過ぎても終わらなければ KILL」という順番は、コマンドでも自動化できます。GNU coreutils の timeout -k 3 2 は、2秒後に TERM、さらに3秒後に KILL を送ります。TERM を無視するプログラムでは、約5秒で KILL により終わりました。

$ timeout -k 3 2 python3 editor.py ignore
[start] PID 3940 mode=ignore
[edit] line1 を入力(未保存 1 行)
[edit] line2 を入力(未保存 2 行)
[edit] line3 を入力(未保存 3 行)
[save] 自動保存: 3 行を保存
[edit] line4 を入力(未保存 1 行)
exit status: 137
経過 5.0 秒

シグナル名を省いた kill で、受け取る処理の無いプログラム(sleep)を終わらせると、終了の状態は 143(128+15)でした。kill -l 143 は TERM、kill -l 137 は KILL を返します。

試したこと 結果 後片付け
TERM を送る 4行保存・ロックファイル削除・状態 0 走った
KILL を送る 3行だけ残る・ロックファイルが残る・状態 137 走らない
TERM を無視するプロセスに TERM 動いたまま ―
一時停止中のプロセスに TERM 保留されたまま ―
上の2つに KILL どちらも終わる・状態 137 走らない

プロセスの一覧の見方と止め方は関連記事「Linuxプロセス確認と停止|ps・top・kill逆引きコマンド一覧」で、終了の状態 137 がコンテナで出たときの原因は関連記事「Docker Exited (137)の原因と直し方|OOMKilled」で扱っています。

開発でMacのプロセスを止めるとき(ポートが使用中など)

この節では、Mac で開発しているときに、終わらせ忘れたサーバーなどのプロセスを止める流れが分かります。

開発用のサーバーを閉じ忘れると、次に起動したとき「ポートが使用中」で起動できないことがあります。 そのポートを使っているプロセスの PID を調べ、まず kill(TERM)、終わらなければ kill -9 の順で止めます。

ポートからプロセスを探すコマンドの比較は関連記事「ポートを使っているプロセスの調べ方|ss・lsof・netstat比較」で、エラーの直し方は関連記事「Address already in useの解決方法【Windows・Mac・Linux】」で扱っています。

よくある質問

Q. Macで強制終了するショートカットは? A. Option+Command+Esc です。開いたウインドウでアプリを選び、「強制終了」をクリックします。Option キーには「alt」と書かれていることがあります。

Q. Macでアプリの強制終了ができないときは? A. アップルメニューから「再起動」を選びます。画面もポインタも反応しないときは、電源ボタンを Mac の電源が切れるまで(最大10秒ほど)押し続けます。詳しくは「方法6」の節にまとめています。

Q. MacBookの電源を強制的に切るには、電源ボタンを何秒押せばよいですか? A. Apple サポートでは、Mac の電源が切れるまで最大10秒ほど押し続ける、としています。Touch ID のあるノートブックでは Touch ID ボタンを長押しします。

Q. Macを強制再起動するショートカットは? A. Apple サポートのショートカット一覧では、Touch ID 非搭載の内蔵キーボードで Control+Command+電源ボタンです。未保存の書類があっても確認は表示されません。

Q. 強制終了すると、保存していないデータは消えますか? A. 最後に保存してから後の変更は、失われることがあります。保存済みのファイルは消えません。実測では、TERM では4行すべてが保存され、KILL では最後の自動保存の3行だけが残りました。

Q. Finderが固まったときはどうすればよいですか? A. Option+Command+Esc で強制終了のウインドウを開き、Finder を選んで「再度開く」をクリックします。Finder は常に開いているアプリなので、終わってすぐに開き直されます。

Q. Macにタスクマネージャーはありますか? A. 同じ役割のアプリはアクティビティモニタです。Spotlight(Command+スペース)で「アクティビティモニタ」と入力して開き、プロセスを選んで停止ボタンから「終了」か「強制終了」を選べます。

Q. MacでCtrl+Alt+Deleteにあたるキーは? A. 固まったアプリを終わらせる目的なら、Option+Command+Esc です。ロックは Control+Command+Q、ログアウトは Shift+Command+Q で、Windows の Ctrl+Alt+Del の画面と同じ1つの画面はありません。

Q. Touch BarのあるMacでEscキーはどこですか? A. Touch Bar の左端にあります(Apple サポート)。

Q. ターミナルでアプリを強制終了するには? A. pgrep -l アプリ名 で PID を調べ、kill PID で終了を頼み、終わらなければ kill -9 PID で強制終了します。名前で止めるなら killall アプリ名 です。

Q. kill と kill -9 の違いは何ですか? A. kill は TERM(終了の依頼)を送り、アプリは保存や後片付けをしてから終われます。kill -9 は KILL を送り、アプリは受け取れずにその場で終わります。

Q. 同じアプリが何度も固まるときは? A. Apple サポートは、開き直す → Mac の再起動 → アプリと macOS のアップデート → アプリの削除と再インストール、の順で案内しています。セーフモードで起動して固まらないかを見る方法もあります。

まとめ

  • Mac でアプリを強制終了するショートカットは Option+Command+Esc。アップルメニューの「強制終了」、Dock の Control+クリック、アクティビティモニタでも同じことができる。
  • 試す順番は、Command+Q → 強制終了 → 再起動 → 電源ボタンの長押し(最大10秒ほど)。
  • 強制終了で失われるのは保存していない変更。保存済みのファイルは消えない。Finder は「再度開く」。
  • 何度も固まるときは、アップデート・再インストール・セーフモードを Apple サポートの順に試す。
  • ターミナルの kill は TERM(後片付けができる)、kill -9 は KILL(後片付けができない)。実測では TERM で4行保存・ロックファイル削除、KILL で3行だけ残りロックファイルも残った。
  • Windows の Ctrl+Shift+Esc に近いのは Option+Command+Esc とアクティビティモニタ。

次に読むとよい記事です。シグナルの一覧と kill の使い方は関連記事「Linux killコマンドの使い方|シグナル一覧とkill -9・pkill」で扱っています。

参考・出典

確認日はいずれも 2026年10月23日です。

  • Apple サポート「Macでアプリを強制的に終了する方法」:https://support.apple.com/ja-jp/102586
  • Apple サポート「Macのキーボードショートカット」:https://support.apple.com/ja-jp/102650
  • Apple サポート「Macのアクティビティモニタでアプリまたはプロセスを終了する」:https://support.apple.com/ja-jp/guide/activity-monitor/actmntr1002/mac
  • Apple サポート「Macをシステム終了する/再起動する」:https://support.apple.com/ja-jp/guide/mac-help/mchlp2522/mac
  • Apple サポート「MacでDockを使用する」:https://support.apple.com/ja-jp/guide/mac-help/mh35859/mac
  • Apple サポート「Mac のアプリが反応しない/予期せず終了する/開かない場合」:https://support.apple.com/ja-jp/102152
  • Apple サポート「Macをセーフモードで起動する」:https://support.apple.com/ja-jp/116946
  • Apple サポート「Macで「ターミナル」を開く/終了する」:https://support.apple.com/ja-jp/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac
  • apple-oss-distributions/shell_cmds「kill.1」:https://github.com/apple-oss-distributions/shell_cmds/blob/main/kill/kill.1
  • apple-oss-distributions/shell_cmds「killall.1」:https://github.com/apple-oss-distributions/shell_cmds/blob/main/killall/killall.1
  • apple-oss-distributions/adv_cmds「pkill.1」:https://github.com/apple-oss-distributions/adv_cmds/blob/main/pkill/pkill.1
  • apple-oss-distributions/xnu「bsd/sys/signal.h」:https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/signal.h
  • man7.org「signal(7)」:https://man7.org/linux/man-pages/man7/signal.7.html
  • Microsoft サポート「Windows のキーボード ショートカット」:https://support.microsoft.com/ja-jp/windows/dcc61a57-8ff0-cffe-9796-cb9706c75eec
  • Microsoft Learn「taskkill」:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/taskkill

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Mac 強制終了の方法|アプリが固まった時のショートカットとできない時の対処」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?