¿Qué hace Force Quit en OS X?

6

¿Cómo funciona la interfaz gráfica de usuario para forzar el abandono aplicaciones ( + + Esc ) ¿trabajo?

p.ej. Funciona como killall Finder que enviaría un TERM señal por defecto?

gentmatt
fuente
1
Yo esperaría que enviara una señal KILL, posiblemente después de probar primero señales menos drásticas. De lo contrario, un proceso bloqueado podría no terminarse después de todo. Pero no sé lo que realmente hace.
Harald Hanche-Olsen
@ HaraldHanche-Olsen Esperaría eso también, pero esta pregunta & amp; comentarios Sugiere algo menos radical.
gentmatt
2
Sí, pero parece claro que Force Quit trata al Finder de manera diferente. Simplemente observe cómo cambia el texto del botón "Forzar salida" cuando elige el Finder. O tal vez el problema es que el Finder está bloqueado en una llamada de sistema ininterrumpida, en cuyo caso, incluso una señal de KILL no funcionará.
Harald Hanche-Olsen

Respuestas:

9

Acabo de sondear esto con dtrace. El PID del programa en cuestión se envía un SIGTERM (es decir, la señal 15) de loginwindow.

También intenté esto con un proceso detenido (enviado SIGSTOP ), de modo que el proceso se mostró como "No responde" en el cuadro de diálogo Forzar el cierre y obtuvo el mismo resultado, loginwindow envía un SIGTERM.

Si quieres probarlo, ejecuta lo siguiente en la Terminal:

sudo /usr/sbin/dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'

Luego verá el nombre del proceso de envío de la señal, el número de la señal y el PID al que se envía la señal.

bahamat
fuente
1
Si intenta forzar el cierre de los procesos en segundo plano (o una aplicación que no se muestra en el Dock) desde el Monitor de actividad, a la mayoría de ellos parece que se les envía un SIGKILL (-9).
Lri
¡Buena respuesta! Y gracias por el comando bash.
gentmatt
@LauriRanta: Niza. Yo no intenté eso.
bahamat
@bahamat, gracias por la respuesta, pero me pregunto si puede decir en qué versión de OS X probó esto.
D A Vincent
A juzgar por cuando publiqué esto originalmente, diría que era 10.7.x. Todavía funciona en Yosemite. Necesitas ser root o usar sudo aunque.
bahamat