Minha compreensão vaga e intuitiva é que Ctrl+ Cmata o processo que está sendo executado atualmente na janela selecionada.
Eu estou ficando confuso, embora tipicamente sobre a diferença de qual processo é morto quando um executável é chamado e quando um interpretador é usado.
Intérprete
Quando eu uso um intérprete . Por exemplo, se eu abrir R
no terminal, posso ver um processo que CMD
(na chamada de ps
) é R
. Quando eu uso Ctrl+ Cno entanto, o R
processo não é morto, mas o processo em execução R
é morto.
Executável
Quando eu chamo um exectuable, posso ver um processo que CMD
(na chamada de ps
) é <nameOfExecutable>
. Quando eu faço Ctrl+ C, esse processo é morto.
Questão
Parece haver algum tipo de hierarquia de processos (e pode haver uma semântica correta para se referir a ela). O que o Ctrl+ faz Cexatamente à luz dessa aparente hierarquia de processos?
Para sua informação, eu uso o Terminal 2.6.1 no Mac OS X 10.11.3
SIGINT
não éSIGKILL
, portanto, o processo não é "morto".Respostas:
Não tenho certeza, mas
ctrl + c
devo enviarSIGINT
sinal para o processo em execução. Normalmente, os programas não possuem um manipulador personalizado para esse sinal e a ação padrão é executada (o programa é eliminado). Eu estou supondo que o intérprete intercepta este sinal e simplesmente pára de executar o script em execução.fonte