Como executar comandos do Linux em segundo plano

Os comandos do Linux são uma ótima maneira de interagir com o sistema usando o terminal. No entanto, às vezes pode demorar um pouco para concluir a tarefa em questão. Isso força os usuários a esperar por um tempo considerável ou gerar um novo shell.

Felizmente, você pode executar comandos do Linux em segundo plano, seguindo alguns métodos simples. O restante deste artigo ilustra alguns desses métodos.

1. Adicione um E comercial após seu comando

A maneira mais fácil de executar um comando em segundo plano do Linux é adicionar um símbolo E comercial ( & ) após o comando. Por exemplo, se você iniciar o editor de texto gedit em seu terminal, não poderá usar o shell até fechar o editor. No entanto, ao adicionar um & extra ao seu comando, você poderá usar o shell imediatamente.

 gedit &

2. Use bg para enviar comandos em execução para o fundo

Às vezes, você executa um comando apenas para descobrir que leva muito mais tempo para ser concluído. Você pode enviar facilmente esses comandos para o plano de fundo pressionando as teclas Ctrl + Z e, em seguida, usando o comando bg . Ctrl + Z interrompe o processo em execução e bg o leva para o segundo plano.

Você pode ver uma lista de todas as tarefas em segundo plano digitando trabalhos no terminal. Use o comando fg para voltar à tarefa em execução.

3. Envie comandos para segundo plano com nohup

O comando nohup no Linux permite que os administradores executem comandos de terminal imunes aos sinais de HUP ou desligar . Você pode executar comandos do Linux em segundo plano usando nohup.

O exemplo abaixo executa uma varredura de porta Nmap em segundo plano.

 nohup sudo nmap -sS --top-ports=15 192.168.1.1/24

Um dos principais benefícios do nohup é que seus comandos serão executados mesmo se você sair do shell. Além disso, gera arquivos de log da execução. Procure nohup.out no diretório atual ou dentro de $ HOME.

4. Executar comandos em segundo plano usando redirecionamentos do sistema

Você também pode executar comandos em segundo plano no Linux usando redirecionamentos do sistema. Por exemplo, se você executar o comando ping abaixo, seu shell o executará em segundo plano e retornará imediatamente o prompt do terminal.

 ping -c5 8.8.8.8 >output.log 2>&1 &

Aqui, a saída do comando ping é redirecionada para o arquivo output.log . Você pode substituí-lo por / dev / null se quiser descartar o resultado. O 2> & 1 diz ao bash para redirecionar quaisquer erros para o mesmo arquivo. Os sinais finais e bater para executar este comando em segundo plano.

5. Defina os comandos do Linux como segundo plano usando negar

O comando disown no Linux facilita a execução de comandos em segundo plano. Primeiro, você precisa enviar a tarefa em segundo plano usando o operador & . Em seguida, digite disown para separá-lo de sua concha.

 gedit &
disown

Uma grande vantagem de rejeitar é que, como nohup, o sistema não encerrará sua tarefa quando você fechar o shell ou efetuar logout.

6. Execute comandos do Linux em segundo plano usando o Tmux

Tmux é um multiplexador poderoso que nos permite rodar múltiplas sessões de terminal em uma única janela. Aprender tmux é uma excelente escolha para pessoas que não estão familiarizadas com ele. O Tmux torna a execução de comandos em segundo plano no Linux sem esforço.

 tmux new -d 'ping -c 10 8.8.8.8 > output.log'

Quando você executa o comando tmux acima, ele executa o comando ping em um shell separado e o mantém em segundo plano. Você pode executar qualquer comando do Linux em segundo plano usando este método.

Relacionado: Como instalar e configurar o Tmux para Linux

Deixe seus comandos do Linux em segundo plano

Ter a capacidade de executar comandos em segundo plano torna o gerenciamento do sistema mais produtivo para os administradores. Você pode colocar suas tarefas em segundo plano de várias maneiras. Os recursos do Bash como & e Ctrl + Z são convenientes, mas o sistema eliminará o trabalho em segundo plano quando o shell for fechado. Por outro lado, ferramentas como nohup e disown mantêm o comando em execução mesmo quando você faz logout ou encerra o shell.

Se você deixar seus programas em segundo plano por muito tempo, eles podem se tornar processos zumbis se não forem codificados corretamente. Esses processos podem tornar o sistema significativamente mais lento. Portanto, certifique-se de identificar e matar processos zumbis de vez em quando.