52 votos

¿Cómo puedo matar un proceso por su nombre?

A veces noto que el proceso Python colgado. Luego lo mato a través del Monitor de Actividad y todo va bien.

Me gustaría matar ese proceso en la Terminal en su lugar. Sin embargo, buscando el PID parece algo innecesario porque sólo hay un proceso con el nombre Python .

¿Es posible matar un proceso por su nombre único?

0 votos

Véase también esta pregunta por el nombre de la ventana visible.

60voto

Matt Love Puntos 5380

Debería poder ejecutar el comando sudo killall Python .

Es necesario ejecutar como Root porque Python pertenece a Root, no al usuario.

2 votos

Yo lo hice: No matching processes belonging to you were found

1 votos

El proceso de Python no pertenece a su usuario. Inténtalo como Root en su lugar: sudo killall Python .

1 votos

@HenningJ Sudo funcionó por alguna razón. Acabo de ver que el proceso sí me pertenece. Pude matar el proceso sin sudo cuando lo maté usando su PID . ¿Por qué?

28voto

Roshan Mehta Puntos 41
sudo killall -s SIGINT "process name"

Si no puede ser un sudo porque pedirá contraseña y siento que no quiere eso en un script. pkill viene al rescate :)

pkill -9 "process name"

6voto

Jason Medeiros Puntos 2549

Puedes matar las aplicaciones usando Activity Monitor.app, siendo la solución GUI. Eso sería un simple "forzar la salida". ¡Sin embargo, eso no siempre funciona por diferentes razones en algunas situaciones!

La solución de línea de comandos mencionada en el comentario anterior tiene muchas más opciones para el usuario. sudo killall Python o si es un programa-proceso en ejecución sudo killall /Applications/Whatever.app obliga a abandonar el proceso también.

También se puede forzar la salida de un proceso, utilizando su asignación PID . En el caso de Activity Monitor.app sería kill 25794 o kill -9 25794

enter image description here

Algunos detalles más:

El programa kill en Terminal simplemente fuerza la salida de un programa, como si fuera por control remoto. (Incluso funciona cuando te conectas por SSH a tu Mac desde una ubicación remota. Siga el comando kill con el número de identificación del proceso (PID abreviado) del programa que desea terminar.

A menos que también utilices sudo, sólo puedes matar los programas que te "pertenecen", es decir, los que se ejecutan bajo tu cuenta. (El propio sistema operativo -Root- siempre está ejecutando programas propios, y es técnicamente posible que otras personas, marcando desde la carretera, estén ejecutando programas propios incluso mientras usted está usando el Mac).

El -9 es una "muerte no capturable, no ignorable". En otras palabras, es un asesino de fuerza industrial que no acepta súplicas de piedad del programa que está matando.

6voto

soxman Puntos 1569

Aunque hace utilizar el PID, me parece que lo siguiente es bastante eficiente:

ps aux | grep "String or name of process"

Esta línea devuelve una gran cantidad de información sobre el(los) proceso(s) coincidente(s), y puede kill o lo que sea de allí.

5voto

Stefan72097 Puntos 21
pkill -f "process name"

Basado en https://stackoverflow.com/a/22334807/1243763

1 votos

¿Existe un pidof en MacOS? ¿Y por qué no usar pkill que no tiene el problema del proceso adicional?

0 votos

De acuerdo y me lo perdí. Yo tenía pidof binario como alias no estándar de ps -e -o pid,args | grep -E "\b$1\b" | awk "{print \$1}" | tr '\n' ' ' . Así que.., pkill -f tiene más sentido.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X