kill
(キル)は、UNIX やUnix系 けい のオペレーティングシステム において、システム上 じょう で動作 どうさ しているプロセス に簡単 かんたん なメッセージを送 おく るコマンドである。
デフォルトで送 おく るメッセージは、終了 しゅうりょう (termination)シグナル であり、プロセスに終了 しゅうりょう (exit)することを要求 ようきゅう する。しかし、kill は少 すこ し誤 あやま った名称 めいしょう である。送 おく られるシグナルは、プロセスの終了 しゅうりょう とは無関係 むかんけい の場合 ばあい がある。kill
コマンドは
kill()
システムコール のラッパー であり、数字 すうじ のプロセス識別子 しきべつし (PID)で指示 しじ されたプロセスや、プロセスグループ識別子 しきべつし (PGID)で指示 しじ されたプロセスグループ に、シグナル を送 おく る。kill
は昔 むかし からスタンドアロンのユーティリティとして提供 ていきょう されているが、多 おお くのシェル はわずかに異 こと なるビルトインのkill
コマンドを持 も っている。
ユーザが通常 つうじょう 最 もっと も利用 りよう するシグナルはSIGTERM とSIGKILL であるが、kill
は多 おお くの異 こと なるシグナルを送 おく ることも可能 かのう である(シグナル全体 ぜんたい のリストはシグナル を参照 さんしょう )。デフォルトで送 おく られるシグナルはSIGTERMである。このシグナルを扱 あつか うプログラムは、プログラムを終了 しゅうりょう する前 まえ に、役 やく に立 た つクリーンアップの処理 しょり (構成 こうせい 情報 じょうほう をファイルに保存 ほぞん するなど)を行 おこな うことが出来 でき る。しかし、多 おお くのプログラムはこのシグナルに対 たい して特別 とくべつ なハンドラを実装 じっそう しておらず、デフォルトシグナルハンドラが代 か わりに呼 よ ばれる。時 とき には、特別 とくべつ なハンドラを持 も つプロセスでさえ、シグナルを正 ただ しく処理 しょり していないことがある。
SIGKILL とSIGSTOP 以外 いがい の全 すべ てのシグナルは、プロセスによって横取 よこど りすることが出来 でき る。これは、プログラムがシグナルを受信 じゅしん したときに、特別 とくべつ な関数 かんすう を呼 よ び出 だ せることを意味 いみ している。二 ふた つの例外 れいがい のSIGKILLとSIGSTOPは、ホストシステムのカーネル だけが処理 しょり を行 おこな い、プロセス実行 じっこう のコントロールについて信頼 しんらい できる方法 ほうほう を提供 ていきょう している。SIGKILLはプロセスを終了 しゅうりょう させる。SIGSTOPは、SIGCONTを受 う けるまでの間 あいだ 、プロセスを中断 ちゅうだん させる。
UNIXは、権限 けんげん のないユーザが他 た のプロセスを終了 しゅうりょう させることを防止 ぼうし するため、セキュリティの機構 きこう を提供 ていきょう している。基本 きほん 的 てき には、あるプロセスが別 べつ のプロセスにシグナルを送 おく るとき、シグナルを送 おく るプロセスの所有 しょゆう 者 しゃ は、シグナルを受 う けるプロセスの所有 しょゆう 者 しゃ と同 おな じか、スーパーユーザー であることが求 もと められる。
利用 りよう 可能 かのう なシグナルは全 すべ て異 こと なる名前 なまえ を持 も ち、特定 とくてい の数字 すうじ にマッピングされている。UNIXの実装 じっそう によって、数字 すうじ とシグナルのマッピングが異 こと なることに注意 ちゅうい する必要 ひつよう がある。SIGTERMは多 おお くの場合 ばあい 15であり、SIGKILLは多 おお くの場合 ばあい 9である。
プロセスに対 たい して以下 いか の3つの方法 ほうほう でSIGTERMシグナルを送 おく ることができる(この場合 ばあい はプロセスIDは'1234' である):
kill 1234
kill -TERM 1234
kill -15 1234
また、プロセスに対 たい して以下 いか の2つの方法 ほうほう でSIGKILLシグナルを送 おく ることができる:
kill -KILL 1234
kill -9 1234
他 た の有用 ゆうよう なシグナルには、HUP、TRAP、INT、ALRM等 とう がある。SIGINT シグナルは、多 おお くのシェル で、単純 たんじゅん にCTRL +C を押 お すことで発生 はっせい させることができる。一般 いっぱん 的 てき に、CTRL +Z がSIGTSTP に、 CTRL +\ (バックスラッシュ) がSIGQUIT に割 わ り当 あ てられている。SIGQUITはプログラムにコアダンプ を行 おこな わせることが出来 でき る。
関連 かんれん するプログラム[ 編集 へんしゅう ]
killall - Solaris 等 ひとし のいくつかのUNIX系 けい OSでは、システムのシャットダウン の過程 かてい でこのユーティリティが自動的 じどうてき に起動 きどう される。これは、上記 じょうき のkillコマンドのような働 はたら きを行 おこな うが、特定 とくてい のプロセスにシグナルを送 おく るのではなく、システムの全 すべ てのプロセスにシグナルを送 おく る。しかし、IRIX ・Linux ・FreeBSD のような他 ほか のシステムでは、終了 しゅうりょう させるプロセスの名前 なまえ を指定 してい するためのパラメータを使用 しよう する。例 たと えば、xmmsによって起動 きどう されたXMMS 音楽 おんがく プレーヤを終了 しゅうりょう させるために、killall xmms
というコマンドが使用 しよう される。これはxmms
という名前 なまえ の全 すべ てのプロセスを終了 しゅうりょう させる。
pkill - これは、名前 なまえ や他 た の属性 ぞくせい に基 もと づいて、プロセスにシグナルを送 おく る。Solaris 7で導入 どうにゅう され、LinuxとOpenBSD で再 さい 実装 じっそう された。pkillは、終了 しゅうりょう させるプロセスをより便利 べんり な名前 なまえ を基準 きじゅん に指定 してい できる。例 たと えば、pkillを使用 しよう せずに(また、pgrep も使用 しよう せずに)、firefox という名前 なまえ のプロセスを終了 しゅうりょう させる場合 ばあい は、kill `ps -ax | grep firefox | grep -v grep | awk '{print $1}'`
をタイプする必要 ひつよう がある。pkillが使用 しよう できる場合 ばあい は、単純 たんじゅん にpkill firefox
とタイプするだけよい。
Microsoft Windows XP とMicrosoft Windows Vista には、プロセスを終了 しゅうりょう させるためのtaskkill コマンド[1] がある。また、非 ひ サポート版 ばん のkillが、Windows NT 3.x, NT 4.0, Windows 2000, Microsoft Windows Server 2003向 む けのMicrosoft Windows Resource Kits(または"RezKits")に含 ふく まれていた。バージョン3.5のkill(Copyright (C) 1994 Microsoft Corp.)が最 もっと も有用 ゆうよう であった。GNU バージョンのkillは、Cygwin によって移植 いしょく され、Microsoft Windows Services for UNIX [2] が提供 ていきょう するUNIX OSレイヤ中 ちゅう で動作 どうさ した。(マイクロソフトは1999年 ねん 9月 がつ 17日 にち に、Softway Systems社 しゃ と同社 どうしゃ のInterix 製品 せいひん を買収 ばいしゅう することで、Microsoft Windows Services for UNIXを手 て に入 い れた。)
killは、Win32の世界 せかい のスレッドと実行 じっこう 形式 けいしき の個別 こべつ の管理 かんり に、待望 たいぼう された粒 つぶ 度 ど を提供 ていきょう した。しかし実質 じっしつ 的 てき には、どのkillの派生 はせい 版 ばん も(POSIX の世界 せかい から移植 いしょく されたものも、模倣 もほう したりスクラッチから作 つく られたものも)、競合 きょうごう するUnixのような、実行 じっこう 中 ちゅう のウィンドウズのプロセスに対 たい する完全 かんぜん な機能 きのう がなく、根本 こんぽん 的 てき な制御 せいぎょ が行 おこな えなかった。
Plan 9 において、killプログラムは実際 じっさい には終了 しゅうりょう の動作 どうさ をせず、プロセスIDも使用 しよう しない。むしろ、プロセスの実際 じっさい の名前 なまえ を使用 しよう し、プロセスを終了 しゅうりょう させるために、Plan 9のシェル であるrc に対 たい するコマンドを出力 しゅつりょく する。例 たと えば、実行 じっこう 中 ちゅう のtroff を全 すべ て終了 しゅうりょう させるときは、以下 いか のようにタイプする。
kill troff | rc
slayと呼 よ ばれる類似 るいじ のコマンドが提供 ていきょう されている。この方法 ほうほう で終了 しゅうりょう されることを拒否 きょひ するプロセス以外 いがい に対 たい しては同 おな じ動作 どうさ である。
killコマンド - Linuxマニュアル(英語 えいご )
kill(1) コマンド man page(SunOS リファレンスマニュアル)
kill(1) コマンド man page(HP-UX リファレンス)
killシステムコール - Linuxマニュアル(英語 えいご )
kill(2) システム・コール man page(Solaris 10 Reference Manual Collection)(英語 えいご )
kill(2) システム・コール man page(HP-UX リファレンス)
ファイルとファイルシステム管理 かんり プロセス管理 かんり ユーザ管理 かんり /環境 かんきょう テキスト処理 しょり シェル ビルトイン通信 つうしん 検索 けんさく マニュアル ソフトウェア開発 かいはつ その他 た
ファイルシステム ファイル管理 かんり ディスク管理 かんり プロセス管理 かんり レジストリ ユーザ環境 かんきょう テキスト処理 しょり スクリプト ネットワーク メンテナンス ブート管理 かんり ソフトウェア開発 かいはつ その他 た