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.
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.