Pressionar Ctrl + Z suspende o aplicativo, como em, ele pára de ser executado até ser retomado com um SIGCONT (possivelmente enviado através do comando fg
ou bg
no shell). Mas…
Você está executando xinit
, não firefox
. Pressionar Ctrl + Z envia um sinal STOP para o aplicativo que está sendo executado em primeiro plano, não para outros aplicativos que possam ter sido executados. Então você suspendeu apenas xinit
, e isso não afeta a sessão do X11.
Mais precisamente, pressionando Ctrl + Z envia um sinal STOP para o primeiro plano grupo de processos . Isso pode envolver mais de um processo, mas a intenção dos grupos de processos é que ainda é moralmente uma única unidade para fins de sinalização.
(O mesmo vale para Ctrl + C e SIGINT, e Ctrl + \ e SIGQUIT. Por outro lado, SIGHUP quando o terminal desaparece é enviado apenas para um único processo: o líder da sessão, normalmente o shell; os shells, por sua vez, enviam o SIGHUP para os jobs que eles iniciaram.)
xinit
executa o servidor X e o cliente em seu próprio grupo de processos, precisamente para que você possa suspendê-lo ou eliminá-lo sem matar a sessão inteira. Quando você envia um sinal tocável, ele mata o servidor X, que por sua vez faz com que a maioria dos aplicativos X saia - então pressionar Ctrl + C desativa a sessão da GUI, mas indiretamente, não porque cada cliente e servidor recebiam um SIGINT devido ao Ctrl + C . Por outro lado, xinit
não faz nada em particular em Ctrl + Z , de modo que apenas suspende xinit
e deixa a sessão sozinha, o que é útil quando você quer fazer outra coisa no terminal onde você correu xinit
.