Colocar e Trazer Processos Entre Primeiro e Segundo Plano no Linux

Controle absoluto do terminal. Um post DevData.

1. Enviar um processo para o segundo plano

Método A — Executando diretamente no background

./script.sh &

O shell responde com:

[1] 12345
  • [1] → número do job
  • 12345 → PID do processo
  • O terminal fica livre para novos comandos.

Método B — Suspender e enviar ao background depois

Execute normalmente:

./script.sh

Depois pressione Ctrl + Z. Isso suspende o processo:

[1]+  Stopped  ./script.sh

Agora, envie para segundo plano com:

bg

O processo volta a rodar, mas no segundo plano.


2. Trazer um processo de volta para o primeiro plano

Se o processo foi enviado com &, ou por bg, use:

jobs

Resultado esperado:

[1]+  Running  ./script.sh &

Agora traga com:

fg %1
  • %1 é o número do job. O símbolo % é obrigatório.

3. Comandos rápidos para controle total

AçãoComando
Ver processos controlados pelo shelljobs
Enviar processo suspenso para bgbg
Trazer processo para o fgfg %n
Suspender processo em execuçãoCtrl + Z
Matar processo em segundo planokill %n
Desassociar processo do shelldisown %n

4. Observações importantes

  • fg, bg, jobs, disown, etc., só funcionam com processos da sessão atual do terminal.
  • Se o terminal for fechado, os processos em segundo plano são encerrados, a menos que você use:
    • nohup
    • tmux
    • screen
    • setsid

Se quiser garantir que o processo sobreviva à sessão, use:

nohup ./script.sh &

Ou trabalhe de forma profissional com tmux/screen.


5. Para os inquietos: o PID não resolve aqui

Você não usa o PID com fg. O comando fg trabalha com o número do job, identificado por %n.


Finalizando

Dominar o fg, bg e o controle de jobs é coisa de quem usa o shell de verdade. Com esses comandos, você evita perder tempo, mantém seu terminal limpo e sua produtividade em alta.

E se você chegou até aqui, provavelmente já está mais shell do que muito sysadmin por aí.

Rolar para cima