Terminal: interpretação dos processos em execução

0

Eu escrevi um programa no ambiente Eclipse. Primeiro eu executo do Eclipse. Depois disso, na janela do terminal, vejo a lista dos meus processos. Agora eu executo esse programa a partir da linha de comando e vejo a lista de processos.

Eu vejo o processo listado em estados diferentes: quando o programa é executado a partir do Eclipse, o estado é S, quando o programa é executado a partir do terminal, o estado é S +.

Qual é o motivo?

    
por XXXX 08.10.2013 / 22:10

1 resposta

0

Quando você executa o processo em um terminal, seu estado de processo é marcado com um + porque é o processo de primeiro plano nesse terminal. Isso significa, entre outras coisas, que o terminal pode ser usado para controlar o processo. Por exemplo, pressionar Ctrl-C resultará em um sinal SIGINT sendo enviado para o processo. Dependendo dos manipuladores de sinais no programa, isso normalmente terminará o processo. Além disso, fechar o terminal enviará um sinal SIGHUP* para o processo.

Quando você executa o processo a partir do Eclipse, o + não está lá porque o processo não está no grupo de processos de primeiro plano de nenhum terminal. Na verdade, a menos que você tenha iniciado o Eclipse a partir de um terminal (e não baseado em & ou ^Z ), o próprio Eclipse não terá um terminal de controle e nenhum dos seus processos filhos também.

*) HUP para "desligar", desde os dias em que os terminais eram máquinas físicas que se conectavam a computadores através de linhas discadas seriais

    
por zwets 10.10.2013 / 08:31