Envie um processo para o Linux em segundo plano

Envie um processo para o Linux em segundo plano
Ao trabalhar com ambientes gráficos de desktop, raramente nos preocupamos com os processos de fundo. Se tivermos um processo em primeiro plano, podemos gerar rapidamente outra janela do terminal e continuar com nosso trabalho.

No entanto, se você estiver em uma concha de terminal bruto, como o SSH, muitas vezes se sentirá preocupado com processos que ocupam e bloqueiam a concha até que sejam concluídos, especialmente em trabalhos de longa duração. É aí que o conceito de processos de fundo e primeiro plano entra em jogo.

Este tutorial discutirá quais são os processos de antecedência e primeiro plano, incluindo criação e gerenciamento no Linux.

O que é um processo?

Permita -me começar no nível básico: o que é um processo?

No Linux, um processo é uma instância de um programa. Normalmente, isso significa que qualquer comando ou executável em um shell é um processo.

Existem principalmente dois tipos de processos:

  • Processos de primeiro plano
  • Processos de fundo

Os processos em primeiro plano são aplicativos principalmente típicos que lançamos e interagimos com eles. Um exemplo seria o gerenciador de arquivos Nautilus no Gnome. Na maioria dos casos, podemos iniciar processos de primeiro plano do shell ou do ambiente da área de trabalho.

Por outro lado, os processos em segundo plano são executados em segundo plano e não requerem entrada ou interação do usuário. Um exemplo seria qualquer daemon linux típico.

Como executar um processo em segundo plano

Suponha que tenhamos um processo que, durante a execução, ocupe a sessão da concha e nos impede de executar comandos até que ele saia.

Por exemplo, se executarmos o navegador do Firefox na concha, ele ocupará a sessão até o término do processo.

$ Firefox


Como você pode ver, enquanto o Firefox estiver em execução, o prompt de shell não está disponível e não podemos executar mais comandos.

Para resolver isso, podemos fazer isso de duas maneiras:

1: Usando um ampersand (&)

O primeiro método é usar o AMPERSand & Sign. Isso diz ao shell para executar qualquer comando que precede os amperes e em segundo plano.

Um exemplo:

Raposa de fogo &

Nesse cenário, o processo é executado em segundo plano e gera um novo prompt de shell, permitindo -nos continuar executando comandos.

Também fornece dois identificadores numéricos. O primeiro incluído entre colchetes é o ID do trabalho, enquanto o próximo é o ID do processo.

2: Usando o comando Ctrl + Z, BG.

O próximo método que você pode usar para colocar um processo em segundo plano é usar o atalho Ctrl + Z. Isso impede o processo de bloquear a concha. Você pode usar o comando bg para empurrá -lo para o fundo.

Por exemplo, comece lançando o Firefox como:

$ Firefox

Enquanto o processo estiver em execução, pressione Ctrl + Z. Isso retorna seu shell prompt. Por fim, insira o comando bg para empurrar o processo em segundo plano.

Como mostrar processos de fundo

Para visualizar e gerenciar processos em segundo plano, use o comando Jobs no shell. Que mostrará os trabalhos de fundo na sessão atual do terminal.

Por exemplo:

$ jobs

Um exemplo de saída dos trabalhos de fundo:

Para trazer um processo em segundo plano para o primeiro plano, use o comando FG seguido pelo ID do trabalho.

Por exemplo, para trazer o trabalho do Firefox em primeiro plano, usamos o comando:

$ fg %1

Para colocar em segundo plano novamente, pressione Ctrl + Z seguido pelo comando BG.

Como tornar um processo persistente após a concha

Quando você está executando processos em segundo plano e sua sessão de shell morre, todos os processos associados a ele terminam, o que pode ser problemático, especialmente se for uma sessão SSH.

No entanto, isso não é um problema muito grande se você usar um multiplexador de terminal, como tmux ou tela, porque, nesse caso, você pode simplesmente recolocar a sessão.

No entanto, se você executar uma sessão de shell sem um multiplexador, poderá usar o comando Nohup.

O comando Nohup é imune a desligos e pode ignorar o sinal de suspiro enviado a um processo.

Portanto, se você executar um comando com nohup, ele continua a funcionar mesmo que a sessão da shell morra acidentalmente.

Por exemplo, para executar o Firefox com Nohup, use o comando:

Nohup Firefox &

Isso executará o processo em segundo plano, à medida que persistir um shell terminando.

Você pode executar uma nova sessão de terminal e visualizar os trabalhos de fundo. Você verá o processo ainda em execução em segundo plano.

Conclusão

Neste tutorial, discutimos várias maneiras de executar e enviar processos para o fundo do Linux. Também abordamos como trazer um processo de fundo para o fundo e persistir para o término do término da concha.