fbpx
Wikipedia

kill (command)

In computing, kill is a command that is used in several popular operating systems to send signals to running processes.

Implementations edit

Unix and Unix-like edit

In Unix and Unix-like operating systems, kill is a command used to send a signal to a process. By default, the message sent is the termination signal, which requests that the process exit. But kill is something of a misnomer; the signal sent may have nothing to do with process killing. The kill command is a wrapper around the kill() system call, which sends signals to processes or process groups on the system, referenced by their numeric process IDs (PIDs) or process group IDs (PGIDs). kill is always provided as a standalone utility as defined by the POSIX standard. However, most shells have built-in kill commands that may slightly differ from it.[1][2]

There are many different signals that can be sent (see signal for a full list), although the signals in which users are generally most interested are SIGTERM ("terminate") and SIGKILL ("kill"). The default signal sent is SIGTERM. Programs that handle this signal can do useful cleanup operations (such as saving configuration information to a file) before quitting. However, many programs do not implement a special handler for this signal, and so a default signal handler is called instead. Other times, even a process that has a special handler has gone awry in a way that prevents it from properly handling the signal.

All signals except for SIGKILL and SIGSTOP ("stop") can be "intercepted" by the process, meaning that a special function can be called when the program receives those signals. The two exceptions SIGKILL and SIGSTOP are only seen by the host system's kernel, providing reliable ways of controlling the execution of processes. SIGKILL kills the process, and SIGSTOP pauses it until a SIGCONT ("continue") is received.[3]

Unix provides security mechanisms to prevent unauthorized users from killing other processes. Essentially, for a process to send a signal to another, the owner of the signaling process must be the same as the owner of the receiving process or be the superuser.

The available signals all have different names, and are mapped to certain numbers. It is important to note that the specific mapping between numbers and signals can vary between Unix implementations. SIGTERM is often numbered 15 while SIGKILL is often numbered 9.

Examples edit

A process can be sent a SIGTERM signal in four ways (the process ID is '1234' in this case):

kill 1234 kill -s TERM 1234 kill -TERM 1234 kill -15 1234 

The process can be sent a SIGKILL signal in three ways:

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

Other useful signals include HUP, TRAP, INT, SEGV and ALRM. HUP sends the SIGHUP signal. Some daemons, including Apache and Sendmail, re-read configuration files upon receiving SIGHUP, so the kill command may be used for this too. A SIGINT signal can be generated very simply by pressing CTRL+C in most Unix shells. It is also common for CTRL+Z to be mapped to SIGTSTP ("terminal stop"), and for CTRL+\ (backslash) to be mapped to SIGQUIT, which can force a program to do a core dump.

Related programs edit

  • killall - on some variations of Unix, such as Solaris, this utility is automatically invoked when the system is going through a shutdown. It behaves much like the kill command above, but instead of sending a signal to an individual process, the signal is sent to all processes on the system. However, on others such as IRIX, Linux, and FreeBSD, an argument is supplied specifying the name of the process (or processes) to kill. For instance, to kill a process such as an instance of the XMMS music player invoked by xmms, the user would run the command killall xmms. This would kill all processes named xmms, and is equivalent to kill `pidof xmms` on systems like Solaris.
  • pkill - signals processes based on name and other attributes. It was introduced in Solaris 7 and has since been reimplemented for Linux, NetBSD and OpenBSD. pkill makes killing processes based on their name much more convenient: e.g. to kill a process named firefox without pkill (and without pgrep), one would have to type kill `ps --no-headers -C firefox -o pid` whereas with pkill, one can simply type pkill firefox.
  • xkill - if called without any parameters, the mouse cursor changes from an arrow to an "x" icon, and the user can click on a window to force the X server to close the connection with the client owning the window. This often causes the process to terminate when it detects that its connection to the X server has been closed.

Microware OS-9 edit

The kill command is also available as a shell builtin in the OS-9 shell. It is used to kill another process by process ID.[4]

Stop the process with the process ID "7":

$ kill 7 

Microsoft Windows and ReactOS edit

 
The taskkill command on Microsoft Windows

In Microsoft's command-line interpreter Windows PowerShell, kill is a predefined command alias for the Stop-Process cmdlet.

Microsoft Windows XP, Vista and 7 include the command taskkill[5] to terminate processes. The usual syntax for this command is taskkill /im "IMAGENAME". An "unsupported" version of kill was included in several releases of the Microsoft Windows Resource Kits available for Windows 98.[6]

GNU versions of kill have been ported via Cygwin and run inside of the Unix environment subsystem that Microsoft Windows Services for UNIX provides (Microsoft acquired Windows Services for Unix wholesale via their purchase of Softway Systems and their Interix product on September 17, 1999).[7]

 
The taskkill command on ReactOS

The ReactOS implementation is based on the Windows variant. It was developed by Andrew Riedi, Andrew Nguyen, and He Yang. It is licensed under the LGPLv2.1 or later.[8]

Examples edit

Find all processes beginning with the letter "p" that were developed by Microsoft and use more than 10 MB of memory and kill them:

PS C:\> ps p* | where { $_.Company -like "Microsoft*" -and $_.WorkingSet -gt 10MB } | kill -confirm Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "powershell (6832)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): A PS C:\> 

Here is a simpler example, which asks the process Explorer.exe to terminate:

PS C:\> taskkill /im explorer.exe 

This example forces the process to terminate:

PS C:\> taskkill /f /im explorer.exe 

Processes can also be killed by their PID number:

PS C:\> taskkill /pid 3476 

Microsoft Singularity edit

Singularity shell, the standard shell for Microsoft Research's microkernel operating system Singularity includes a kill command to terminate background processes.

Examples edit

Stop the process with the name "SampleProcess":

Singularity>kill SampleProcess 

Stop the process with the process identifier "42":

Singularity>kill 42 

Plan 9 from Bell Labs edit

Under Plan 9 from Bell Labs, the kill program does not actually perform this termination, nor does it take process IDs. Rather, it takes the actual names of processes and outputs the commands for rc, the shell used by Plan 9, to kill the process.[9]

A similar command provided is called slay, which does the same but for processes that refuse to be killed this way.[9]

Examples edit

For example, to kill all instances of troff, one types:

kill troff | rc 

Others edit

The kill command has also been ported to the IBM i operating system.[10]

See also edit

References edit

  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. ^ . ActiveXperts Software. Archived from the original on 2019-05-25. Retrieved 2015-02-24.
  7. ^ . Archived from the original on 2006-02-09. Retrieved 2015-02-24.
  8. ^ reactos/taskkill.c at master · reactos/reactos · GitHub
  9. ^ a b . 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). IBM. Retrieved 2020-09-05.

Further reading edit

External links edit

kill, command, 2016, british, science, fiction, thriller, film, kill, command, computing, kill, command, that, used, several, popular, operating, systems, send, signals, running, processes, killoriginal, author, bell, laboratoriesdeveloper, various, open, sour. For the 2016 British science fiction thriller film see Kill Command In computing kill is a command that is used in several popular operating systems to send signals to running processes killOriginal author s AT amp T Bell LaboratoriesDeveloper s Various open source and commercial developersInitial releaseFebruary 1973 51 years ago 1973 02 Operating systemUnix Unix like Plan 9 Inferno OS 9 Windows ReactOS Singularity IBM iPlatformCross platformTypeCommandLicenseReactOS LGPL 2 1 or later Contents 1 Implementations 1 1 Unix and Unix like 1 1 1 Examples 1 1 2 Related programs 1 2 Microware OS 9 1 3 Microsoft Windows and ReactOS 1 3 1 Examples 1 4 Microsoft Singularity 1 4 1 Examples 1 5 Plan 9 from Bell Labs 1 5 1 Examples 1 6 Others 2 See also 3 References 4 Further reading 5 External linksImplementations editUnix and Unix like edit In Unix and Unix like operating systems kill is a command used to send a signal to a process By default the message sent is the termination signal which requests that the process exit But kill is something of a misnomer the signal sent may have nothing to do with process killing The kill command is a wrapper around the kill system call which sends signals to processes or process groups on the system referenced by their numeric process IDs PIDs or process group IDs PGIDs kill is always provided as a standalone utility as defined by the POSIX standard However most shells have built in kill commands that may slightly differ from it 1 2 There are many different signals that can be sent see signal for a full list although the signals in which users are generally most interested are SIGTERM terminate and SIGKILL kill The default signal sent is SIGTERM Programs that handle this signal can do useful cleanup operations such as saving configuration information to a file before quitting However many programs do not implement a special handler for this signal and so a default signal handler is called instead Other times even a process that has a special handler has gone awry in a way that prevents it from properly handling the signal All signals except for SIGKILL and SIGSTOP stop can be intercepted by the process meaning that a special function can be called when the program receives those signals The two exceptions SIGKILL and SIGSTOP are only seen by the host system s kernel providing reliable ways of controlling the execution of processes SIGKILL kills the process and SIGSTOP pauses it until a SIGCONT continue is received 3 Unix provides security mechanisms to prevent unauthorized users from killing other processes Essentially for a process to send a signal to another the owner of the signaling process must be the same as the owner of the receiving process or be the superuser The available signals all have different names and are mapped to certain numbers It is important to note that the specific mapping between numbers and signals can vary between Unix implementations SIGTERM is often numbered 15 while SIGKILL is often numbered 9 Examples edit A process can be sent a SIGTERM signal in four ways the process ID is 1234 in this case kill 1234 kill s TERM 1234 kill TERM 1234 kill 15 1234 The process can be sent a SIGKILL signal in three ways kill s KILL 1234 kill KILL 1234 kill 9 1234 Other useful signals include HUP TRAP INT SEGV and ALRM HUP sends the SIGHUP signal Some daemons including Apache and Sendmail re read configuration files upon receiving SIGHUP so the kill command may be used for this too A SIGINT signal can be generated very simply by pressing CTRL C in most Unix shells It is also common for CTRL Z to be mapped to SIGTSTP terminal stop and for CTRL backslash to be mapped to SIGQUIT which can force a program to do a core dump Related programs edit killall on some variations of Unix such as Solaris this utility is automatically invoked when the system is going through a shutdown It behaves much like the kill command above but instead of sending a signal to an individual process the signal is sent to all processes on the system However on others such as IRIX Linux and FreeBSD an argument is supplied specifying the name of the process or processes to kill For instance to kill a process such as an instance of the XMMS music player invoked by xmms the user would run the command killall xmms This would kill all processes named xmms and is equivalent to kill pidof xmms on systems like Solaris pkill signals processes based on name and other attributes It was introduced in Solaris 7 and has since been reimplemented for Linux NetBSD and OpenBSD pkill makes killing processes based on their name much more convenient e g to kill a process named firefox without pkill and without pgrep one would have to type kill ps no headers C firefox o pid whereas with pkill one can simply type pkill firefox xkill if called without any parameters the mouse cursor changes from an arrow to an x icon and the user can click on a window to force the X server to close the connection with the client owning the window This often causes the process to terminate when it detects that its connection to the X server has been closed Microware OS 9 edit The kill command is also available as a shell builtin in the OS 9 shell It is used to kill another process by process ID 4 Stop the process with the process ID 7 kill 7 Microsoft Windows and ReactOS edit nbsp The taskkill command on Microsoft WindowsIn Microsoft s command line interpreter Windows PowerShell kill is a predefined command alias for the Stop Process cmdlet Microsoft Windows XP Vista and 7 include the command taskkill 5 to terminate processes The usual syntax for this command is taskkill im IMAGENAME An unsupported version of kill was included in several releases of the Microsoft Windows Resource Kits available for Windows 98 6 GNU versions of kill have been ported via Cygwin and run inside of the Unix environment subsystem that Microsoft Windows Services for UNIX provides Microsoft acquired Windows Services for Unix wholesale via their purchase of Softway Systems and their Interix product on September 17 1999 7 nbsp The taskkill command on ReactOSThe ReactOS implementation is based on the Windows variant It was developed by Andrew Riedi Andrew Nguyen and He Yang It is licensed under the LGPLv2 1 or later 8 Examples edit Find all processes beginning with the letter p that were developed by Microsoft and use more than 10 MB of memory and kill them PS C gt ps p where Company like Microsoft and WorkingSet gt 10MB kill confirm Confirm Are you sure you want to perform this action Performing operation Stop Process on Target powershell 6832 Y Yes A Yes to All N No L No to All S Suspend Help default is Y A PS C gt Here is a simpler example which asks the process Explorer exe to terminate PS C gt taskkill im explorer exe This example forces the process to terminate PS C gt taskkill f im explorer exe Processes can also be killed by their PID number PS C gt taskkill pid 3476 Microsoft Singularity edit Singularity shell the standard shell for Microsoft Research s microkernel operating system Singularity includes a kill command to terminate background processes Examples edit Stop the process with the name SampleProcess Singularity gt kill SampleProcess Stop the process with the process identifier 42 Singularity gt kill 42 Plan 9 from Bell Labs edit Under Plan 9 from Bell Labs the kill program does not actually perform this termination nor does it take process IDs Rather it takes the actual names of processes and outputs the commands for rc the shell used by Plan 9 to kill the process 9 A similar command provided is called slay which does the same but for processes that refuse to be killed this way 9 Examples edit For example to kill all instances of troff one types kill troff rc Others edit The kill command has also been ported to the IBM i operating system 10 See also editSignal xkill killall pkill signal hReferences edit Bash Reference Manual Job Control Builtins The GNU Project Retrieved 2015 02 24 zsh 17 Shell Builtin Commands Retrieved 2015 02 24 lt signal h gt The Open Group Base Specifications Issue 7 Retrieved 2015 02 24 Paul S Dayan 1992 The OS 9 Guru 1 The Facts Galactic Industrial Limited ISBN 0 9519228 0 7 Taskkill Microsoft TechNet Retrieved 2015 02 24 Resource Kit Utilities Windows 98 Resource Kit ActiveXperts Software Archived from the original on 2019 05 25 Retrieved 2015 02 24 GNU utilities for Win32 Archived from the original on 2006 02 09 Retrieved 2015 02 24 reactos taskkill c at master reactos reactos GitHub a b UNIX to Plan 9 command translation Plan 9 wiki Archived from the original on 2008 09 05 Retrieved 2015 02 24 IBM IBM System i Version 7 2 Programming Qshell PDF IBM Retrieved 2020 09 05 Further reading editMcElhearn Kirk 2006 The Mac OS X Command Line Unix Under the Hood John Wiley amp Sons ISBN 978 0470113851 External links edit nbsp The Wikibook Guide to Unix has a page on the topic of Commands Command kill Shell and Utilities Reference The Single UNIX Specification Version 4 from The Open Group System call kill System Interfaces Reference The Single UNIX Specification Version 4 from The Open Group kill 1 Plan 9 Programmer s Manual Volume 1 kill 1 Inferno General commands Manual kill 1 Linux User Commands Manual Retrieved from https en wikipedia org w index php title Kill command amp oldid 1174971987, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.