Processos suspensos no Unix

1

pergunta Unix para iniciantes:

Estou um pouco confuso sobre a finalidade dos comandos suspensos (Ctr + Z) em um shell unix. Pelo que eu percebo, um processo / comando suspenso não está em segundo plano nem (obviamente) em primeiro plano. No entanto - e eu não tenho muita certeza sobre isso, mas é o que o meu dia a dia indica - um processo suspenso não é "pausado", pois terminará (ou pelo menos "terminará seu trabalho") como qualquer outro. Apenas não será enviado para o terminal.

Então qual é o propósito especial (ou 'mecânica' se você preferir) do estado suspenso? Por que não apenas plano de fundo e primeiro plano?

Obrigado

[editar: Eu estava errado na minha suposição de que "um processo suspenso não é 'pausado', pois terminará (ou pelo menos 'termine seu trabalho') como qualquer outro". Veja a resposta aceita.]

    
por biril 15.11.2012 / 13:17

2 respostas

2

Se você suspender um trabalho usando Ctrl + Z , ele fará uma pausa, ou seja, não "terminará seu trabalho". Você pode usar bg para deixá-lo continuar em segundo plano (o que significa que ele ainda pode escrever no stdout, mas não pode ler de stdin). Eu acho que você pode escrever um programa de maneira a ignorar Ctrl + Z ou lidar com isso de alguma outra forma, não tendo certeza disso.

Se por outro lado você deseja iniciá-lo em segundo plano, você pode colocar um & após o comando no shell.

Veja também link

    
por 15.11.2012 / 15:25
1

É usado para permitir que outro processo assuma o controle da entrada e saída padrão. Também é usado para iniciar outro processo no mesmo shell.

Por exemplo:

Durante a execução de um editor de texto que ocupa todo o terminal que você digita ^ Z feche o editor temporariamente e execute alguns comandos (mova arquivos, mude a música, inicie outro programa interativo). Quando terminar, você retomará a edição do seu arquivo trazendo o editor para frente novamente.

    
por 15.11.2012 / 13:30