OS X y Unix Terminal Hay trabajos detenidos.

Los usuarios que intentan salir de las sesiones de Terminal Server a menudo se bloquean al informar sobre los trabajos detenidos. Descubrir, reiniciar y eliminar estos procesos son lecciones esenciales para los usuarios de mac y unix.

Susan me twitteó lo siguiente ayer:

Después de que completé uno de sus tutoriales de mac tech-recipes ayer, no pude cerrar sesión en mi sesión de terminal en OS X. Apareció el mensaje de que "hay trabajos detenidos" y me impidió salir. ¿Qué hice mal?

No hiciste nada mal. Este mensaje solo le informa que dejó una programación ejecutándose en segundo plano mientras trabajaba en el shell. Por lo general, un programa se coloca en segundo plano presionando el acceso directo de control-Z mientras se ejecuta la programación.

Cuando esto ocurra, el terminal ocultará el programa y le notificará con un comando como este:

[3] + Detenido arriba

El [número] es el número de programas actualmente en segundo plano. El signo más muestra que es el más reciente para ingresar el fondo. La última palabra es el programa que realmente fue detenido. En mi ejemplo, utilicé control-Z para detener el parte superior solicitud.

comando de trabajos

Para ver una lista de todos los programas de fondo, use la trabajos mando.

[1] Tope detenido
[2] Tope detenido
[3] - Tope detenido
[4] + Detenido hombre telnet

En mi ejemplo anterior, puedes ver que tengo 4 aplicaciones detenidas. yo tengo parte superior en el fondo tres veces y hombre telnet una vez.

comando fg

A través del terminal el fg comando traerá el último programa de nuevo al frente. Esta será la aplicación marcada con el [+] a través de la trabajos mando. Una vez que el programa vuelve al primer plano, puede salir de él correctamente en lugar de detenerlo. Por ejemplo, uno saldría completamente parte superior o hombre presionando el q llave. Además, control-c normalmente eliminará el programa en comparación con control-z, que lo detiene.

Además, puede cambiar a un programa detenido específico a través del número de trabajo. Por ejemplo, esto cambiaría al programa marcado [2]:

fg% 2

comando de matar

También puede detener programas a través de matar mando. Para usar el comando kill, necesitaremos acceder a los números de ID de proceso (PID) de los trabajos detenidos utilizando el comando trabajos -l mando:


[1] 833 Suspendido: 18 superior
[3] - 860 Suspendido: 18 superior
[4] + 861 Suspendido: 18 man telnet

los -l Además de nuestro trabajos comando muestra los PIDs. Estos son los números que no están entre paréntesis. Estos son 833, 860 y 861 en nuestro ejemplo anterior.

El uso del comando kill con el PID de un programa terminará esa aplicación. Si quisiéramos matar al hombre proceso en nuestro ejemplo, usaríamos el siguiente comando:


matar 861

Además, como acceso directo, puede eliminar todos los programas enumerados a través del comando jobs a través del siguiente código:


mata 'jobs -p'