killとは何? わかりやすく解説 Weblio辞書 (original) (raw)

Kill」のその他の用法については「Kill (曖昧さ回避)」をご覧ください。
kill」の語義については、ウィクショナリーの「kill」の項目をご覧ください。

**kill**(キル)は、UNIXUnix系オペレーティングシステムにおいて、システム上で動作しているプロセスに簡単なメッセージを送るコマンドである。

目次

概説

デフォルトで送るメッセージは、終了(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' である):

また、プロセスに対して以下の2つの方法でSIGKILLシグナルを送ることができる:

他の有用なシグナルには、HUP、TRAP、INT、ALRM等がある。SIGINTシグナルは、多くのシェルで、単純にCTRL+Cを押すことで発生させることができる。一般的に、CTRL+ZがSIGTSTPに、 CTRL+\ (バックスラッシュ) がSIGQUITに割り当てられている。SIGQUITはプログラムにコアダンプを行わせることが出来る。

関連するプログラム

Windows

Microsoft Windows XPMicrosoft 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

Plan 9において、killプログラムは実際には終了の動作をせず、プロセスIDも使用しない。むしろ、プロセスの実際の名前を使用し、プロセスを終了させるために、Plan 9のシェルであるrcに対するコマンドを出力する。例えば、実行中のtroffを全て終了させるときは、以下のようにタイプする。

kill troff | rc

slayと呼ばれる類似のコマンドが提供されている。この方法で終了されることを拒否するプロセス以外に対しては同じ動作である。

関連項目

参照

  1. ^ Microsoft TechNet taskkill article
  2. ^ Windows Services for UNIX

外部リンク

Unixコマンド
ファイルとファイルシステム管理 cat chmod chown chgrp cksum cmp cp dd du(英語版) df(英語版file fsck fuser(英語版ln ls lsof mkdir mount mv pax pwd rm rmdir size split tee touch type(英語版) umask(英語版
プロセス管理 at bg chroot cron fg kill killall nice pgrep pidof pkill ps pstree(英語版reboot shutdown time top
ユーザ管理/環境 clear env exit finger history(英語版id logname(英語版) mesg(英語版passwd su sudo uptime talk tput(英語版uname w wall(英語版who whoami write
テキスト処理 awk banner basename comm(英語版) csplit(英語版cut diff dirname ed ex(英語版fmt fold(英語版head iconv join(英語版less more nkf nl(英語版) paste(英語版printf sed sort spell(英語版strings tail tr uniq vi wc xargs yes
シェルビルトイン alias(英語版cd echo test(英語版unset wait
通信 dig host(英語版ifconfig inetd ip (iproute2) netcat netstat nslookup ping rdate(英語版rlogin route ssh traceroute
検索 find grep locate(英語版) whatis(英語版) whereis(英語版
マニュアル apropos(英語版) help(英語版man
その他 bc dc(英語版cal date expr false lp(英語版) lpr(英語版) od(英語版sl sleep stty true tty
Category:UNIXのソフトウェア UNIXユーティリティの一覧
Windowsコマンドラインプログラムと組み込みコマンド
COMMAND.COM Cmd.exe Windows PowerShell 回復コンソール
ファイルシステム cd (chdir) dir popd(英語版) pushd(英語版) tree(英語版
ファイル管理 attrib(英語版cacls cipher compact copy(英語版) del(英語版) (erase) deltree(英語版expand icacls makecab md (mkdir) move(英語版rd (rmdir) recover(英語版) ren(英語版) (rename) replace(英語版rmdir robocopy(英語版) xcopy(英語版
ディスク管理 CHKDSK convert(英語版defrag diskcomp(英語版) diskcopy(英語版) diskpart(英語版) fdisk(英語版) format(英語版) label(英語版) SUBST(英語版scandisk sys(英語版) vol(英語版) vssadmin(英語版
プロセス管理 exit(英語版) kill PowerCFG(英語版) runas(英語版sc shutdown start(英語版taskkill tasklist(英語版
レジストリ assoc ftype(英語版reg regini regsvr32(英語版
ユーザ環境 date mode(英語版) path(英語版set setx time(英語版) title(英語版) ver(英語版whoami
テキスト処理 comp(英語版edit edlin fc(英語版find findstr(英語版) print(英語版) type(英語版
スクリプト choice(英語版clip cscript doskey(英語版echo for goto if more pause(英語版prompt rem
ネットワーク arp getmac hostname ipconfig net use(英語版netsh netstat nslookup PathPing(英語版ping route tracert
メンテナンス driverquery msiexec ntbackup(英語版sfc systeminfo(英語版) w32tm(英語版) WBAdmin(英語版winsat wmic
ブート管理 bcdedit bootcfg(英語版fixboot fixmbr
ソフトウェア開発 debug(英語版) exe2bin(英語版QBasic
その他 CLS help(英語版
DOSコマンドの一覧(英語版環境変数