kill (명령어)

kill (command)
죽여라
원저작자AT&T 벨 연구소
개발자다양한 오픈 소스 및 상용 개발자
초기 릴리즈1973년 2월, 49년 전(1973-02)
운영 체제Unix, Unix like, Plan 9, Inferno, OS-9, Windows, ReactOS, Singularity, IBM i
플랫폼크로스 플랫폼
유형명령어
면허증.ReactOS: LGPL-2.1 이후

컴퓨팅에서 는 일반적여러 운영 체제에서 실행 중인 프로세스에 신호를 보내기 위해 사용되는 명령어입니다.

실장

Unix 및 Unix 유사

Unix 및 Unix 유사 운영 체제에서는kill는 프로세스에 신호를 보내기 위해 사용하는 명령어입니다.기본적으로는 전송되는 메시지는 종료 신호로 프로세스 종료를 요구합니다.그러나 킬은 잘못된 명칭입니다. 전송되는 신호는 프로세스 킬과 무관할 수 있습니다.kill 명령어는 시스템콜 주위의 래퍼입니다.시스템상의 프로세스 또는 프로세스 그룹에 신호를 송신해, 그 수치 프로세스 ID(PID) 또는 프로세스 그룹 ID(PGID)에 의해서 참조됩니다. kill는 항상 POSIX 표준에 정의된 스탠드아론 유틸리티로 제공됩니다.그러나 대부분의 조개껍질은 내장되어 있습니다. kill[1][2]명령어와 약간 다를 수 있습니다.

송신할 수 있는 신호는 여러 가지가 있습니다(전체 리스트에 대해서는 시그널을 참조해 주세요).다만, 유저가 일반적으로 가장 관심을 가지는 신호는 SIGTERM(종단)과 SIGKILL(킬)입니다.전송되는 기본 신호는 SIGTERM입니다. 이 신호를 처리하는 프로그램은 종료하기 전에 구성 정보를 파일에 저장하는 등의 유용한 정리 작업을 수행할 수 있습니다.단, 많은 프로그램에서는 이 신호에 대해 특별한 핸들러를 구현하지 않기 때문에 대신 기본 신호 핸들러가 호출됩니다.또, 특수한 핸들러를 가지는 프로세스에서도, 신호를 올바르게 처리할 수 없게 되는 경우가 있습니다.

SIGKILL SIGSTOP("정지")을 제외한 모든 신호는 프로세스에 의해 "감청"될 수 있으며, 이는 프로그램이 이러한 신호를 수신하면 특수 함수를 호출할 수 있음을 의미합니다.SIGKILL과 SIGSTOP의 두 가지 예외는 호스트 시스템의 커널에서만 볼 수 있으므로 프로세스 실행을 제어하는 신뢰할 수 있는 방법을 제공합니다.SIGKILL은 프로세스를 종료하고 SIGSTOP은 SIGCONT("[3]계속")를 수신할 때까지 프로세스를 일시 중지합니다.

Unix는 권한이 없는 사용자가 다른 프로세스를 종료하는 것을 방지하기 위한 보안 메커니즘을 제공합니다.기본적으로 어떤 프로세스가 다른 프로세스로 신호를 전송하기 위해서는 시그널링 프로세스의 소유자가 수신 프로세스의 소유자와 같거나 슈퍼 유저여야 합니다.

사용 가능한 신호는 모두 다른 이름을 가지며 특정 번호에 매핑됩니다.숫자와 신호 간의 특정 매핑은 UNIX 구현에 따라 다를 수 있습니다.SIGTERM은 15, SIGKILL은 9로 되어 있는 경우가 많습니다.

프로세스는 다음 4가지 방법으로 SIGTERM 신호를 전송할 수 있습니다(이 경우 프로세스 ID는 '1234'입니다).

1234 킬 -s TERM 1234  - TERM 1234 킬 - 15 1234

프로세스는 다음 3가지 방법으로 SIGKILL 신호를 전송할 수 있습니다.

-s KILL 1234 KILL - KILL 1234 KILL - 9 1234

기타 유용한 신호로는 HUP, TRAP, INT, SEGV 및 ALRM이 있습니다.HUP는 SAHUP 신호를 전송합니다.Apache나 Sendmail일부 데몬은 SAHUP을 수신하면 컨피규레이션파일을 재읽기 때문에 kill 명령어를 사용할 수도 있습니다.SIGINT 신호는 대부분의 Unix 쉘에서 +를 C누르면 매우 간단하게 생성할 수 있습니다.또한 Z+가 SIGTSTP("터미널 중지")에 매핑되고 +(\백슬래시)가 SIGQUIT에 매핑되는 것이 일반적이며, 이로 인해 프로그램이 코어 덤프를 강제로 실행할 수 있습니다.

관련 프로그램

  • killall - Solaris Unix의 일부 버전에서는 이 유틸리티는 시스템이 셧다운될 때 자동으로 실행됩니다.이 명령어는 위의 kill 명령어와 매우 비슷하지만 개별 프로세스에 신호를 보내는 대신 시스템 상의 모든 프로세스에 신호를 보냅니다.그러나 IRIX, 리눅스FreeBSD와 같은 다른 환경에서는 중지할 프로세스의 이름을 지정하는 인수가 제공됩니다.예를 들어, 에 의해 호출되는 XMMS 음악 플레이어의 인스턴스 등의 프로세스를 종료하려면xmms사용자는 명령어를 실행합니다.killall xmms이렇게 하면 명명된 모든 프로세스가 중지됩니다.xmms와 동등합니다.kill `pidof xmms`Solaris와 같은 시스템에서 사용합니다.
  • pkill - 이름 및 기타 Atribut에 따라 프로세스에 신호를 보냅니다.Solaris 7에서 도입되어 Linux, NetBSDOpenBSD용으로 재실장되었습니다.pkill을 사용하면 pkill(및 pgrep을 사용하지 않고 firefox라는 이름의 프로세스를 종료하는 경우)를 입력할 수 있습니다.kill `ps --no-headers -C firefox -o pid`반면 pkill을 사용하면 간단히 타이핑할 수 있습니다.pkill firefox.
  • xkill - 매개 변수 없이 호출하면 마우스 커서가 화살표에서 "x" 아이콘으로 바뀝니다. 사용자는 창을 클릭하여 X 서버가 창을 소유한 클라이언트와의 연결을 강제로 닫도록 할 수 있습니다.이로 인해 X 서버와의 접속이 종료된 것을 검출하면 프로세스가 종료되는 경우가 많습니다.

전자레인지 OS-9

kill명령어는 OS-9 쉘에 내장된 셸로도 사용할 수 있습니다.프로세스 [4]ID에 의해 다른 프로세스를 종료하기 위해 사용됩니다.

프로세스 ID가 "7"인 프로세스를 중지합니다.

$kill 7

Microsoft Windows 및 ReactOS

taskkillMicrosoft Windows에서의 명령어

마이크로소프트 명령줄 인터프리터 Windows PowerShell에서kill에일리어스가 사전 정의된 명령어에일리어스Stop-Process cmdlet.

Microsoft Windows XP, Vista 7에는 다음 명령어가 포함되어 있습니다.taskkill[5] 프로세스를 종료합니다.이 명령어의 일반적인 구문은 다음과 같습니다.taskkill /im "IMAGENAME". 의 "지원되지 않는" 버전kill 는 Windows [6]98에서 사용할 수 있는 Microsoft Windows Resource Kit의 여러 릴리스에 포함되어 있습니다.

GNU 버전killCygwin 경유로 이식되어 Microsoft Windows Services for UNIX가 제공하는 Unix 환경 서브시스템 내에서 실행됩니다(Microsoft는 1999년 [7]9월 17일 소프트웨이 시스템즈 및 그 Interix 제품을 구입함으로써 Windows Services for Unix 도매로 Windows Services for Unix를 인수했습니다).

taskkillReact 명령어OS

리액트OS 의 실장은, Windows 의 배리언트에 근거하고 있습니다.그것은 Andrew Riedi, Andrew Nguyen, 그리고 He Yang에 의해 개발되었다.LGPLv2.1 이후 라이선스가 [8]부여되어 있습니다.

Microsoft가 개발한 문자 "p"로 시작하는 모든 프로세스를 찾아서 10MB 이상의 메모리를 사용하여 프로세스를 중지합니다.

PS C:\>psp*   어디에{ $_.회사 -라이크 "Microsoft*" -그리고 $_.작업 세트 -gt 10 MB }   죽여라-스위치  확인. 이 작업을 수행하시겠습니까? 대상 "powershell (6832)"에서 "Stop-Process" 작업을 수행합니다. [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?도움말(기본값은 Y)] : A PS C:\> 

다음은 Explorer.exe 프로세스의 종료를 요구하는 간단한 예입니다.

PS C:\>태스크킬 / 탐험가.실행 

다음 예제에서는 프로세스를 강제로 종료합니다.

PS C:\>태스크킬 /f / 탐험가.실행 

프로세스는 PID 번호로도 정지할 수 있습니다.

PS C:\>태스크킬 /pid 3476 

Microsoft Singularity

Microsoft Research의 마이크로커널 운영체제용 표준 셸인 Singularity 쉘은kill백그라운드 프로세스를 종료하는 명령어.

"Sample Process"라는 이름으로 프로세스를 중지합니다.

특이점>샘플 프로세스 종료

프로세스 식별자가 "42"인 프로세스를 중지합니다.

특이점> kill 42

Bell Labs의 플랜9

Bell Labs의 Plan 9에서는 Kill 프로그램은 실제로 이 종료를 실행하거나 프로세스 ID를 취득하지 않고 실제 프로세스 이름을 가져와 프로세스를 [9]종료하기 위해 Plan 9에서 사용되는 인 rc 명령어를 출력합니다.

제공된 동일한 명령어는slay이런 식으로 [9]죽임을 거부하는 과정을 제외하고는 같은 역할을 합니다.

예를 들어 troff의 모든 인스턴스를 종료하려면 다음 중 하나의 유형을 사용합니다.

kill troff rc

다른이들

kill 명령어는 IBM i 운영 [10]체제에도 이식되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Bash Reference Manual: Job Control Builtins". The GNU Project. Retrieved 2015-02-24.
  2. ^ "zsh: 17. Shell Builtin Commands". Retrieved 2015-02-24.
  3. ^ "<signal.h>". The Open Group Base Specifications Issue 7. Retrieved 2015-02-24.
  4. ^ Paul S. Dayan (1992). The OS-9 Guru - 1 : The Facts. Galactic Industrial Limited. ISBN 0-9519228-0-7.
  5. ^ "Taskkill". Microsoft TechNet. Retrieved 2015-02-24.
  6. ^ "Resource Kit Utilities - Windows '98 Resource Kit". ActiveXperts Software. Retrieved 2015-02-24.
  7. ^ "GNU utilities for Win32". Archived from the original on 2006-02-09. Retrieved 2015-02-24.
  8. ^ 마스터에서의 reactos/taskkill.c, reactos/reactos, GitHub
  9. ^ a b "UNIX to Plan 9 command translation". Plan 9 wiki. Archived from the original on 2008-09-05. Retrieved 2015-02-24.
  10. ^ IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). Retrieved 2020-09-05.

추가 정보

외부 링크