Estoy ejecutando un programa en el terminal del que no puedo escapar Ctrl, Cy que quiero matar. ¿Cómo puedo encontrar su PID?
command-line
process
Jjed
fuente
fuente
Respuestas:
Abra otra terminal y ejecute
ps ax | grep foo
donde foo es el nombre del programa que no responde. Esto debería devolver una línea de salida que se parece a esto:El primer campo de cada línea de salida es un número que representa el ID de proceso del programa con el que coincide
grep
(puede ignorar con seguridad el último, que se representa agrep
sí mismo).Para detener el proceso ofensivo, haga:
kill pid
donde pid es la ID del proceso del programa. Es posible que tenga que usar su juicio sobre cuál de las coincidencias necesita serkill
editada, o podría usartop
en su lugar. El usokill
por sí solo envía SIGTERM, que debe probar primero, ya que permite que el programa se limpie correctamente después de sí mismo. Si SIGTERM falla, intente SIGHUP, que es la medicina stonger:kill -HUP pid
. Si todo lo demás falla, envíe SIGKILL. Pero, solo debe hacerlo como último recurso, porque SIGKILL hace que el núcleo finalice el proceso inmediatamente sin posibilidad de limpieza. Esto a veces puede resultar en corrupción de datos u otros problemas. De nuevo, solo envíe SIGKILL como último recurso. Para hacerlo, hazkill -KILL pid
okill -9 pid
.Si está ejecutando una interfaz gráfica, por supuesto, no tiene que engañar con estas cosas locas de la línea de comandos para hacer el trabajo. Simplemente abra "Monitor de sistema", navegue a la pestaña Procesos, elija el proceso que desea detener (Hm, ¿podría ser el que usa una CPU del 90%?) Y haga clic derecho en él. Dado que el proceso ya está detenido, (ese es el problema, ¿verdad?), Elija Finalizar proceso o Eliminar proceso en el menú resultante.
fuente
kill -9
es un mal consejo. He editado la respuesta para corregirlo.ping
comando ysleep
. De acuerdo con unix.stackexchange.com/a/275826/72988 , no es posible en Ubuntu sinmultiplexer
.No creo que haya una necesidad de comandos tan largos cuando puedes ejecutar los mismos comandos con pgrep, pkill, pidof, etc.
pgrep:
DESCRIPCIÓN: pgrep examina los procesos que se ejecutan actualmente y enumera los ID de proceso que coinciden con los criterios de selección para stdout. Todos los criterios tienen que coincidir. Por ejemplo,
Para encontrar el proceso llamado sshd propiedad de root.
Enumere los procesos propiedad de root OR daemon.
pidof:
DESCRIPCION :
Pidof encuentra la identificación del proceso (pids) de los programas nombrados. Imprime esas identificaciones en la salida estándar.
sintaxis: pidof nombre_programa
Para matar un programa pid usando el ejemplo pkill:
-f
flag: busca el nombre de proceso (ver man pkill)-o
flag: selecciona solo el más antiguo de los procesos coincidentes.-n
flag: Seleccione solo el más nuevo de los procesos coincidentes.-l
flag: muestra el nombre del proceso, así como el ID del proceso.fuente
La forma más fácil de conocer el pid de un programa en ejecución es usar:
Por ejemplo, si inició vim y quiere saber su pid:
Recuerde que deberá proporcionar el nombre exacto del programa que se inició.
Por ejemplo, si ejecuta vi y ejecuta
pidof vim
, no obtendrá resultados correctos.Consulte
pidof
la página del manual para obtener más información.fuente
pidof mysqld
devuelve un PID. Sin embargo, si escribopidof Mariadb
no se devuelve nada. ¿Es el mismo PID para MariaDB y MySQL?He descubierto que es bueno usar una búsqueda que no distingue entre mayúsculas y minúsculas agregando "-i" y usando "aux" en lugar de "ax" para obtener una salida más descriptiva:
Si desea eliminar todos los procesos que puede usar:
Esa es una muerte contundente. Suelta el "-9" si quieres una muerte suave.
fuente
ps aux | grep -i firefox...
proceso, porque contiene el textofirefox
en su comando!grep -i firefo[x]
para combinar solo Firefox-9
conkill
, ver aquí explicacionesSi solo desea el pid (útil para scripts de autoajuste, etc.)
fuente
Para aquellos con Ubuntu 16.04 LTS, se debe utilizar
ps ax
y no sólops
en la línea de comandos, de lo contrario se acaba de obtener los procesos de desove de la instancia terminal en particular que usted está en. (Por lo general sólo 'bash' [la capa que está en ] y 'ps' [lo que acabas de ejecutar])fuente
ps -e
(muestra todo) yps -ejH
(muestra un árbol de procesos).También puede abrir otro terminal (o cambiar a otro tty) y ejecutar
top
, que es básicamente una versión de texto del Monitor del sistema. La primera columna enumera el PID de cada proceso en ejecución, que puede eliminar presionando K, ingresando el PID y luego ingresando una señal numérica para enviar.fuente
Podrías hacerlo:
los primeros dos tubos obtienen información del proceso, luego intentamos obtener la columna PID usando el corte de la vieja escuela y luego le damos el PID resultante para matar.
fuente
kill -9
es el arma más grande que tienes para matar un proceso. Debería probar una señal más suave al principio antes de recurrir a SIGKILL para darle al proceso la oportunidad de limpiar sus recursos.o
enumerar todos los pid con el proceso correspondiente
fuente