Saltar al contenido

¿Cuál es la diferencia entre Ctrl-z y Ctrl-c en la terminal?

Nuestro grupo de trabajo ha pasado mucho tiempo buscando para darle resolución a tu duda, te compartimos la soluciones de modo que nuestro deseo es resultarte de gran ayuda.

Solución:

Si dejamos los casos extremos a un lado, la diferencia es simple. Control+C aborta la aplicación casi inmediatamente mientras Control+Z la deriva a un segundo plano, suspendida.

El shell envía diferentes señales a las aplicaciones subyacentes en estas combinaciones:

  • Control+C (personaje de control intr) envía SIGINT que interrumpirá la aplicación. Por lo general, hace que se anule, pero esto es decisión de la aplicación.

  • Control+Z (personaje de control susp) envía SIGTSTP a una aplicación en primer plano, poniéndola efectivamente en segundo plano, suspendida. Esto es útil si necesita salir de algo como un editor para ir y tomar algunos datos que necesita. Puede volver a la aplicación ejecutando fg (o %x donde x es el número de trabajo como se muestra en jobs).

    Podemos probar esto ejecutando nano TEST, luego presionando Control+Z y luego corriendo ps aux | grep TEST. Esto nos mostrará el nano el proceso aún se está ejecutando:

    oli     3278  0.0  0.0  14492  3160 pts/4    T    13:59   0:00 nano TEST
    

    Además, podemos ver (a partir de esa T, que está en la columna de estado) que el proceso se ha detenido. Así que todavía está vivo, pero no se está ejecutando … Se puede reanudar.

    Algunas aplicaciones fallarán si tienen procesos externos en curso (como una solicitud web) que pueden agotarse mientras están inactivos.

control+C se usa para matar un proceso con señal SIGINT, en otras palabras, es un cortés matar .

control+Z se utiliza para suspender un proceso enviándole la señal SIGTSTP, que es como una señal de sueño, que se puede deshacer y el proceso se puede reanudar nuevamente.

Sin embargo, cuando se suspende un proceso, podemos reanudarlo nuevamente al fg (reanudar en primer plano) y bg (reanudar en segundo plano), pero no puedo reanudar un proceso muerto, esa es una diferencia entre usar control+C Y control+Z.

Como podemos vista procesos suspendidos?

El jobs El comando da una salida como esta:

[1]-  Stopped                 cat
[2]+  Stopped                 vi

Cómo matar un proceso suspendido en segundo plano?

Usando el kill mando:

kill %n donde n es el número que muestra el jobs mando. Entonces, si quiero matar a un gato: kill %1.

Control+Z suspende un procesoSIGTSTP) y Control+C interrumpe un procesoSIGINT)

http://en.wikipedia.org/wiki/Control-Z

En sistemas similares a Unix, Control + Z es la asignación de teclado predeterminada más común para key secuencia que suspende un proceso

http://en.wikipedia.org/wiki/Control-C

En los sistemas POSIX, la secuencia hace que el programa activo reciba una señal SIGINT. Si el programa no especifica cómo manejar esta condición, se termina. Por lo general, un programa que maneja un SIGINT aún terminará por sí mismo, o al menos terminará la tarea que se ejecuta dentro de él.

valoraciones y comentarios

Si te gustó nuestro trabajo, eres capaz de dejar una crónica acerca de qué le añadirías a esta reseña.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *