A veces me doy cuenta de que el proceso se ha Python
bloqueado. Luego lo mataré a través del Monitor de actividad y todo estará bien.
En cambio, me gustaría matar ese proceso en la Terminal. Sin embargo, buscar esto PID
parece un poco innecesario porque solo hay un proceso por el nombre Python
.
¿Es posible matar un proceso por su nombre único?
No matching processes belonging to you were found
sudo killall Python
.sudo
cuando lo maté usando esPID
. ¿Por qué?sudo
.Si no puede ser un sudo porque le pedirá una contraseña y siento que no quiere eso en un script. pkill ven a rescatar :)
fuente
Puede eliminar aplicaciones utilizando Activity Monitor.app, que es la solución GUI. Eso sería una simple "forzar el abandono". Sin embargo, ¡eso no siempre funciona por diferentes razones en algunas situaciones!
La solución de línea de comandos como se menciona en el comentario anterior tiene muchas más opciones para el usuario.
sudo killall Python
o si se trata de un programa en ejecución,sudo killall /Applications/Whatever.app
el proceso también se cierra.También puede forzar el cierre de un proceso, utilizando su PID asignado . En el caso de Activity Monitor.app sería
kill 25794
okill -9 25794
Algunos detalles más:
El programa kill en Terminal simplemente fuerza el cierre de un programa, como por control remoto. (Incluso funciona cuando ingresa SSH a su Mac desde una ubicación remota. Siga el comando kill con el número de ID de proceso (PID corto) del programa que desea finalizar.
A menos que también use sudo, puede eliminar solo los programas que “posee”, los que se ejecutan en su cuenta. (¡El sistema operativo en sí mismo, root, siempre ejecuta sus propios programas, y es técnicamente posible que otras personas, al marcar desde la carretera, ejecuten sus propios programas incluso mientras está usando la Mac!)
La
-9
bandera 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.fuente
A pesar de que no usar 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) coincidentes, y usted puede
kill
o lo que sea desde allí.fuente
Basado en https://stackoverflow.com/a/22334807/1243763
fuente
pidof
binario como alias no estándar deps -e -o pid,args | grep -E "\b$1\b" | awk "{print \$1}" | tr '\n' ' '
. Entonces,pkill -f
tiene más sentido.