Linuxコマンド一覧

killコマンド|動いているプロセスを止める

__ __ _ _____
\ \ / /__| |_|_ _|__ _ __ _ __ ___
\ \ /\ / / _ \ '_ \| |/ _ \ '__| '_ ` _ \
\ V V / __/ |_) | | __/ | | | | | |
\_/\_/ \___|_.__/|_|\___|_| |_| |_| |_
 
kill を試すためのサンドボックスです。実機のファイルには影響しません。
user@webterm:~/project$
 

kill は動いているプロセスに終了を頼むコマンドです。PID の調べ方、`-9` を使う場面と使わないほうがいい理由、シグナルの意味を、ブラウザ上のターミナルで打ちながら確認できます。

最終更新: 2026-09-06

書式

kill [シグナル] PID...

指定した PID のプロセスにシグナルを送ります。

まず打ってみる

止めたいプロセスの PID を ps で調べるところから始めます。

$ ps aux | grep python3
user        3456 98.5  4.2  456789  87654 pts/0    R    09:15   154:56 python3 backup_sync.py

CPU を 98.5% 使っている backup_sync.py が犯人でした。 2列目の 3456 が PID です。

$ kill 3456

うまくいくと何も出ません。 止まったことは ps で確かめます。

$ ps
  PID TTY              TIME CMD
 1234 pts/0        00:00:00 zsh
 2847 pts/0        00:01:23 node
 2345 pts/0        00:00:00 ps

一覧から消えています。 もう一度同じ PID に送ると、もう居ないと言われます。

$ kill 3456
kill: (3456) - No such process

kill は「お願い」です

kill という名前ですが、既定で送っているのは SIGTERM(15番)です。 これは「終わる準備をして、自分で終了してください」という合図で、受け取った側は書きかけのファイルを保存したり、接続を閉じたりしてから終われます。

無視されて止まらないときだけ、-9(SIGKILL)を使います。

$ kill -9 2847
$ ps
  PID TTY              TIME CMD
 1234 pts/0        00:00:00 zsh
 2345 pts/0        00:00:00 ps

SIGKILL はプロセスに通知されず、その場で終了させられます。 後始末をする隙が無いので、壊れかけのファイルやロックが残ることがあります。 まず kill、駄目なら -9 の順番を守ってください。

シグナルの種類

送れるシグナルは -l で一覧できます。

$ kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS

実務で使うのは、このうち3つだけです。

書き方名前意味
kill <PID>SIGTERM (15)終わってくださいとお願いする
kill -9 <PID>SIGKILL (9)有無を言わさず止める
kill -HUP <PID>SIGHUP (1)設定を読み直させる(多くの常駐プログラムの慣習)

番号でも名前でも書けます。 kill -9kill -KILLkill -SIGKILL はすべて同じ意味です。

実務での使いどころ

kill は、画面から操作できなくなったプロセスを止めるときに打つコマンドです。

場面打ち方
暴走したプロセスを止めるps aux | grep <名前> で PID を調べて kill <PID>
止まらないので強制終了するkill -9 <PID>
設定ファイルを読み直させるkill -HUP <PID>
他人が動かしているものを止めるsudo kill <PID>

手元の端末で動かしているものなら、Ctrl+C のほうが早いです。 kill が要るのは、別の端末やバックグラウンドで動いていて、そこに Ctrl+C を送れないときです。

つまずきやすいところ

他人のプロセスは止められません。

$ kill 1
kill: (1) - Operation not permitted

ps auxUSER 列を見て、自分のものかどうかを確かめてください。 管理が必要なものは sudo kill <PID> になります。

PID は毎回変わります。 プロセスを起動し直すと別の番号になります。 ps で調べた直後に kill する、を1組にしてください。

渡せるのは数字だけです。

$ kill abc
kill: 'abc': invalid process id

kill が受け取るのは番号だけです。 名前から番号を引くのが ps の役目なので、この2つは組で覚えてください。

手を動かして覚える

webterm.appこのサイト

learn.webterm.app別のサイト

>_WEBTERM LEARN

WebTerm Learn|1つのコマンドから、使える状態へ

コマンドは単体で覚えるより、実際の作業の流れの中で使うほうが身につきます。順番に積み上げていくコースがあります。

コースを見る

関連するコマンド

ps / top / jobs

よくある質問

kill は強制終了のコマンドですか?
違います。既定で送るのは SIGTERM で、「片づけて終わってください」という**お願い**です。強制的に止めるのは `kill -9`(SIGKILL)のほうです。
PID はどうやって調べますか?
`ps aux | grep <名前>` です。出てきた行の2列目が PID なので、それを `kill` に渡します。
いきなり -9 を使ってはいけないのですか?
まず `kill` だけを試してください。SIGKILL はプロセスに後始末をさせずに止めるので、書きかけのファイルやロックが残ることがあります。反応が無いときの最後の手段です。
Operation not permitted と出ます。
他人のプロセスは止められません。自分が起動したものかを `ps aux` の USER 列で確かめ、必要なら `sudo kill <PID>` を使います。
-9 と -SIGKILL は同じですか?
同じです。番号でも名前でも書けて、`kill -9`、`kill -KILL`、`kill -SIGKILL` はすべて同じ意味になります。