49 votos

¿Cómo puedo salir de una aplicación utilizando el Terminal?

Quiero salir de ciertas aplicaciones en mi Mac usando Terminal. Por ejemplo, ¿cómo puedo matar a "Slack"? ¿Necesito su número PID?

68voto

Leonard Puntos 2832

Puedes usar AppleScript para decirle a la aplicación que salga:

osascript -e 'quit app "Slack"'

esto le dirá a la aplicación que salga y comenzará todas las tareas de guardado y limpieza. O puede enviar el TERM señal con pkill pero puede ser que la aplicación no se cierre limpiamente

pkill -x Slack

11 votos

Este es el mejor método, porque reproduce lo que ocurre cuando se utiliza File>Quit del menú.

5 votos

Huh. Siempre he utilizado osascript -e 'tell application "Slack" to quit' pero si la sintaxis más corta funciona, obviamente es preferible. Esta es definitivamente una mejor respuesta que cualquier cosa que sugiera kill o cualquiera de sus variantes.

0 votos

@TJLuoma Creo que si seleccionas la señal correcta, entonces pkill es tan elegante como cualquier otro método. Yo también estoy a favor del AppleScript, aunque he creado una función quit para hacerla con brisa. Sin embargo, si crear un proceso AppleScript no es necesario, pkill -QUIT -x Slack debería estar bien.

57voto

user3439894 Puntos 5883

No, no es necesario conocer su PID .

Puedes usar:

pkill -x Slack

O:

killall Slack

Nota: Asegúrese de leer el página del manual para el que comando que elija, para ver los distintos opciones disponible para el comando según sea pertinente para su uso particular. En Terminal tipo Por ejemplo man pkill y pulse enter o simplemente tipo el comando y Haga clic con el botón derecho del ratón en en él, entonces seleccione : Abrir la página del hombre

16voto

user321134 Puntos 13

Como todavía no tengo la reputación para comentar, lo digo como una respuesta separada. pkill sin ninguna bandera hace no coinciden con un proceso específico. Por ejemplo, ejecutar pkill foo se dirigiría a los procesos denominados foo pero también se dirigiría a los procesos denominados foobar . Esto se debe a que utiliza expresiones regulares.

Si desea matar un proceso específico, puede pasarle el parámetro -x bandera. Por ejemplo, pkill -x foo . Esto utilizará nombres exactos en lugar de expresiones regulares.

Por ejemplo, en su caso, pkill -x Slack hará el truco.

8voto

BEFio Puntos 81

Puede instalar htop (vía brew por ejemplo).

Tendrá que ejecutar esto como Root o con sudo . Esencialmente, es un monitor de basado en texto.

Seleccione el proceso que desea matar (con las teclas de dirección o con el ratón).

A continuación, pulse k para enviar una señal al proceso y luego 9 para elegir el SIGKILL señal.

6voto

Geoff Puntos 3094

No estoy seguro de Slack, pero algunas aplicaciones ejecutan varios procesos y es posible que desee matar sólo uno (me parece que a menudo tengo que hacer esto con iTunes, por ejemplo). En ese caso, puedes ejecutar

ps -e | grep -i slack

Para encontrar todos los procesos con "slack" insensible a mayúsculas y minúsculas en el nombre. La salida debería ser como (sin la cabecera):

PID TTY          TIME CMD
649 pts/1    00:00:00 bash

La primera columna será su PID. A continuación, puede utilizarlo para matar específicamente ese proceso:

kill -9 649

Sustituyendo el 649 por el PID que has encontrado al llamar a ps .

2 votos

Kill envía una señal para terminar la aplicación. No es necesario utilizar -9 (kill) si la aplicación está respondiendo. Se corre el riesgo de perder datos no guardados

0 votos

Del mismo modo, si quieres matar, por ejemplo, las 5 instancias de algún proceso con nombre, puedes filtrar la salida de ps en el valor de CMD y luego matar todas las primeras entradas en esas líneas.

1 votos

@Carl Witthoft, puede utilizar simplemente killall procname Por ejemplo killall Slack y lo hará matar todas las ocurrencias de Slack o lo que sea procname es. No es necesario utilizar ps ¡!

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