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 ejecutandofg
(o%x
dondex
es el número de trabajo como se muestra enjobs
).Podemos probar esto ejecutando
nano TEST
, luego presionando Control+Z y luego corriendops aux | grep TEST
. Esto nos mostrará elnano
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.