Articulo de referencia

matar (comando)

En informática , kill es un comando que se utiliza en varios sistemas operativos populares para enviar señales a los procesos en ejecución . Implementaciones Unix y sistemas sim...

En informática , killes un comando que se utiliza en varios sistemas operativos populares para enviar señales a los procesos en ejecución .

Implementaciones

Unix y sistemas similares a Unix

En sistemas operativos Unix y similareskill , es un comando que se utiliza para enviar una señal a un proceso. Por defecto, el mensaje que se envía es la señal de terminación , que solicita que el proceso finalice . Pero el término "kill" es algo engañoso; la señal que se envía puede no tener nada que ver con la finalización del proceso. El killcomando es una envoltura de la llamada al sistema , que envía señales a procesos o grupos de procesos en el sistema, referenciados por sus identificadores numéricos de proceso (PID) o identificadores de grupo de procesos (PGID). siempre se proporciona como una utilidad independiente según lo define el estándar POSIX . Sin embargo, la mayoría de los shells tienen comandos integrados que pueden diferir ligeramente de él. [ 1 ] [ 2 ]kill()killkill

Existen diversas señales que se pueden enviar (consulte la lista completa en la sección de señales ), aunque las que suelen interesar más a los usuarios son SIGTERM ("terminar") y SIGKILL ("eliminar"). La señal predeterminada es SIGTERM. Los programas que manejan esta señal pueden realizar operaciones de limpieza útiles (como guardar la información de configuración en un archivo) antes de finalizar. Sin embargo, muchos programas no implementan un controlador específico para esta señal, por lo que se utiliza el controlador predeterminado. En ocasiones, incluso un proceso con un controlador específico puede fallar e impedir que maneje la señal correctamente.

Todas las señales, excepto SIGKILL y SIGSTOP ("detener"), pueden ser "interceptadas" por el proceso, lo que significa que se puede llamar a una función especial cuando el programa recibe dichas señales. Las dos excepciones, SIGKILL y SIGSTOP, solo son visibles para el núcleo del sistema anfitrión , lo que proporciona formas fiables de controlar la ejecución de los procesos. SIGKILL finaliza el proceso y SIGSTOP lo pausa hasta que se recibe una señal SIGCONT ("continuar"). [ 3 ]

Unix proporciona mecanismos de seguridad para evitar que usuarios no autorizados detengan otros procesos. Básicamente, para que un proceso envíe una señal a otro, el propietario del proceso que envía la señal debe ser el mismo que el propietario del proceso receptor o ser el superusuario .

Las señales disponibles tienen nombres diferentes y se asocian a números específicos. Esta asociación puede variar entre las distintas implementaciones de Unix. Por ejemplo, SIGTERM suele tener el número 15, mientras que SIGKILL suele tener el número 9.

Ejemplos

Se puede enviar una señal SIGTERM a un proceso de cuatro maneras (en este caso, el ID del proceso es '1234'):

matar 1234 matar -s TERM 1234 matar -TERM 1234 matar -15 1234

Se puede enviar una señal SIGKILL al proceso de tres maneras:

matar -s MATAR 1234 matar -MATAR 1234 matar -9 1234

Otras señales útiles incluyen HUP, TRAP, INT, SEGV y ALRM. HUP envía la señal SIGHUP . Algunos demonios, incluidos Apache y Sendmail , vuelven a leer los archivos de configuración al recibir SIGHUP, por lo que el comando kill también puede usarse para esto. Una señal SIGINT se puede generar muy simplemente presionando CTRL+C en la mayoría de los shells de Unix . También es común que + se asigne a SIGTSTP ("terminal stop"), y que + (barra invertida) se asigne a SIGQUIT , lo que puede forzar a un programa a hacer un volcado de memoria .CTRLZCTRL\

  • killall – en algunas variantes de Unix, como Solaris , esta utilidad se invoca automáticamente cuando el sistema se está apagando . Se comporta de forma muy similar al comando kill anterior, pero en lugar de enviar una señal a un proceso individual, la señal se envía a todos los procesos del sistema. En algunos sistemas como IRIX , Linux y FreeBSD , se proporciona un argumento que especifica el nombre del proceso (o procesos) que se va a eliminar. Por ejemplo, para eliminar un proceso como una instancia del reproductor de música XMMS invocado por xmms, el usuario ejecutaría el comando killall xmms. Esto eliminaría todos los procesos llamados xmms, y es equivalente a kill `pidof xmms`en sistemas como Solaris.
  • pkill – señala procesos en función de su nombre y otros atributos. Se introdujo en Solaris 7 y desde entonces se ha reimplementado para Linux, NetBSD y OpenBSD . pkill hace que matar procesos en función de su nombre sea mucho más conveniente: por ejemplo, para matar un proceso llamado firefox sin pkill (y sin pgrep ), uno tendría que escribir mientras que con pkill, uno puede simplemente escribir .kill `ps --no-headers -C firefox -o pid`pkill firefox
  • xkill : si se llama sin parámetros, el cursor del ratón cambia de una flecha a un icono "x", y el usuario puede hacer clic en una ventana para forzar al servidor X a cerrar la conexión con el cliente propietario de la ventana. Esto suele provocar que el proceso finalice cuando detecta que se ha cerrado su conexión con el servidor X. Solo funciona en sistemas que ejecutan X11 ; por ejemplo, no funciona con un compositor Wayland .

Microware OS-9

El killcomando también está disponible como un comando integrado del shell de OS-9 . Se utiliza para terminar otro proceso por su ID. [ 4 ]

Detenga el proceso con el ID de proceso "7":

$ matar 7 

Microsoft Windows y ReactOS

El taskkillcomando en Microsoft Windows

En el intérprete de línea de comandos de Microsoft, Windows PowerShell , es un alias de comandokill predefinido para el cmdlet .Stop-Process

Microsoft Windows XP , Vista y 7 incluyen el comando taskkill[ 5 ] para terminar procesos. La sintaxis habitual para este comando es taskkill /im "IMAGENAME". Una versión "no compatible" de killse incluyó en varias versiones de los Kits de recursos de Microsoft Windows disponibles para Windows 98. [ 6 ]

Las versiones GNUkill se han portado a través de Cygwin y se ejecutan dentro del subsistema del entorno Unix que proporciona Microsoft Windows Services for UNIX (Microsoft adquirió Windows Services for Unix al 100% mediante la compra de Softway Systems y su producto Interix el 17 de septiembre de 1999). [ 7 ]

El taskkillcomando en ReactOS

La implementación de ReactOS se basa en la variante de Windows. Fue desarrollada por Andrew Riedi, Andrew Nguyen y He Yang. Está licenciada bajo la LGPLv2.1 o posterior. [ 8 ]

Ejemplos

Encuentra todos los procesos que comiencen con la letra "p", que hayan sido desarrollados por Microsoft y que utilicen más de 10 MB de memoria, y finalízalos:

PS C:\> ps p * | where { $_ . Company -like "Microsoft*" -and $_ . WorkingSet -gt 10MB } | kill -confirmConfirmar ¿Está seguro de que desea realizar esta acción? Realizando la operación "Stop-Process" en el destino "powershell (6832)". [Y] Sí [A] Sí a todo [N] No [L] No a todo [S] Suspender [?] Ayuda (el valor predeterminado es "Y"): A PS C:\>

Aquí hay un ejemplo más sencillo, que le pide al proceso Explorer.exe que finalice:

PS C: \ > taskkill / im explorer.exe

Este ejemplo fuerza la finalización del proceso:

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

Los procesos también pueden ser terminados por su número PID :

PS C:\> taskkill / pid 3476

Singularidad de Microsoft

Singularity shell , el intérprete de comandos estándar del sistema operativo de microkernel Singularity de Microsoft Research, incluye un comando para finalizar los procesos en segundo plano.kill

Ejemplos

Detenga el proceso con el nombre "SampleProcess":

Singularidad>matar SampleProcess 

Detenga el proceso con el identificador de proceso "42":

Singularidad>matar 42 

Plan 9 de Bell Labs

En el Plan 9 de Bell Labs , el programa kill en realidad no realiza esta terminación, ni toma los ID de los procesos. En cambio, toma los nombres reales de los procesos y genera los comandos para rc , el intérprete de comandos utilizado por el Plan 9, para terminar el proceso. [ 9 ]

Se proporciona un comando similar llamado slay, que hace lo mismo pero para los procesos que se niegan a ser terminados de esta manera. [ 9 ]

Ejemplos

Por ejemplo, para eliminar todas las instancias de troff , se escribe:

matar troff | rc

Otros

El comando kill también se ha adaptado al sistema operativo IBM i . [ 10 ]

Véase también

  • Señal
  • xkill
  • matar a todos
  • matar
  • señal.h
  • Alt-F4 , una combinación de teclas de ordenador para cerrar forzosamente una aplicación/programa/ventana de Microsoft Windows.
  • Control-Alt-Supr y combinaciones de teclas similares permiten acceder a diversas formas de forzar el cierre de una aplicación, dependiendo del sistema operativo y la versión.

Referencias

  1. "Manual de referencia de Bash: Funciones integradas de control de trabajos" . El proyecto GNU . Archivado del original el 18 de septiembre de 2019. Consultado el 24 de febrero de 2015 .
  2. "zsh: 17. Comandos integrados del shell" . Archivado del original el 24/02/2015 . Consultado el 24/02/2015 .
  3. "<signal.h>" . The Open Group Base Specifications Issue 7 . Archivado del original el 18-02-2015 . Recuperado el 24-02-2015 .
  4. Paul S. Dayan (1992). El gurú del OS-9 - 1 : Los hechos . Galactic Industrial Limited. ISBN  0-9519228-0-7.
  5. "Taskkill" . Microsoft TechNet . Archivado del original el 3 de febrero de 2018. Consultado el 24 de febrero de 2015 .
  6. "Utilidades del kit de recursos - Kit de recursos de Windows '98" . ActiveXperts Software . Archivado del original el 25/05/2019 . Consultado el 24/02/2015 .
  7. "Utilidades GNU para Win32" . Archivado del original el 9 de febrero de 2006. Consultado el 24 de febrero de 2015 .
  8. "reactos/taskkill.c en master · reactos/reactos · GitHub" . Archivado del original el 24 de junio de 2024. Consultado el 25 de mayo de 2020 .
  9. 1 2 "Traducción de comandos de UNIX a Plan 9" . Wiki de Plan 9. Archivado del original el 5 de septiembre de 2008. Consultado el 24 de febrero de 2015 .
  10. IBM . "IBM System i Versión 7.2 Programación Qshell" (PDF) . IBM . Archivado (PDF) del original el 18-09-2020 . Recuperado el 05-09-2020 .

Lecturas adicionales

  • McElhearn, Kirk (2006). La línea de comandos de Mac OS X: Unix bajo el capó . John Wiley & Sons . ISBN 978-0470113851.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Kill_(command)&oldid=1340685360#Unix_and_Unix-like "