Que processo é morto quando eu faço 'ctrl + c'?

2

Meu entendimento vago e intuitivo é que Ctrl + C mata o processo atualmente em execução na janela selecionada.

Estou ficando confuso, embora normalmente, sobre a diferença de qual processo é morto quando um executável é chamado e quando um intérprete é usado.

Intérprete

Quando 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 + C , o processo R não é morto, mas o processo em execução em 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 , este processo é eliminado.

Pergunta

Parece haver algum tipo de hierarquia de processos (e pode haver uma semântica correta para se referir a ela). O que Ctrl + C faz exatamente à luz dessa aparente hierarquia de processos?

Para sua informação, eu uso o Terminal 2.6.1 no Mac OS X 10.11.3

    
por Remi.b 21.08.2016 / 18:38

1 resposta

1

Não tenho certeza, mas ctrl + c deve enviar o sinal SIGINT 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.

    
por 21.08.2016 / 18:53