Como iniciar o comando Linux em segundo plano e destacar o processo no terminal

Como iniciar o comando Linux em segundo plano e destacar o processo no terminal
Neste guia, aprenderemos a executar um comando em segundo plano e como desafiando os processos do terminal.

Pré -requisitos:

Para executar as etapas deste guia, você precisa dos seguintes componentes:

  • Um sistema Linux funcional. Saiba mais sobre como configurar uma VM Ubuntu no VirtualBox.
  • Acesso a um usuário sem raios com permissão de sudo.

Executando os processos do terminal

Sempre que executando um comando, os processos são gerados sob o terminal. Se o terminal estiver fechado, todos os processos associados serão rescindidos automaticamente. Em certas situações, pode ser inconveniente. Por exemplo:

  • Quantidade esmagadora de dados de saída e mensagens de erro/diagnóstico
  • Fechamento acidental do terminal, o que resulta no término de processos potencialmente críticos da missão, etc.

Para resolver essas questões, existem algumas opções:

  • Executando os processos em segundo plano
  • Destacando os processos do terminal

Os processos executados em segundo plano não sobrecarregarão a saída do terminal. Além disso, o terminal está livre para executar os comandos adicionais. Para processos desapegados, eles não terminam, mesmo se o terminal estiver fechado.

Iniciando os processos em segundo plano

Em muitos casos, um comando pode demorar um pouco para completar. Geralmente, o usuário é forçado a esperar até que o comando termine. Por exemplo, quando você está usando um editor de texto, o shell não está disponível até que o editor seja fechado.

Para demonstrar, usamos o comando "sim":

$ cara sim

Método 1:

Existem algumas maneiras de enviar o processo de execução para o fundo.

Primeiro, paramos o processo sem encerrar. Para fazer isso, execute o seguinte comando e pressione “Ctrl + Z”:

$ sim "hello world"> /dev /null

Agora, execute o comando "BG" para enviar o processo em segundo plano:

$ bg

Uma vez empurrado para o fundo, o processo é retomado. O comando a seguir lista todos os trabalhos em execução em segundo plano:

$ jobs

Método 2:

No método anterior, o processo começou a funcionar em primeiro plano. Paramos no processo, enviamos para o fundo e depois retomamos. Em vez disso, podemos executar o processo diretamente em segundo plano.

Para fazer isso, adicione o sinal "&" no final do comando:

$ sim "Oh Long Johnson"> /dev /null &

Aqui, os processos gerados são executados automaticamente em segundo plano. Para verificar, verifique a lista de trabalhos em segundo plano:

$ jobs

Método 3:

Também podemos iniciar os processos em segundo plano com a ajuda do TMUX, um poderoso multiplexador que pode gerenciar várias sessões de terminal em uma única janela. Não vem pré-instalado no Linux. No entanto, está disponível para todas as principais distribuições Linux. Saiba mais sobre a instalação do TMUX no Linux.

No exemplo a seguir, usamos o TMUX para pinar um alvo e registrar a saída:

$ tmux novo -d 'ping -c 9 127.0.0.1> ping.registro'

O arquivo de log verifica se o comando é executado com sucesso ou não:

$ Cat Ping.registro

É apenas um exemplo do que o tmux pode fazer. Saiba mais sobre o TMUX com exemplos.

Retornando os empregos para o primeiro plano

Se você deseja devolver um emprego ao primeiro plano, usamos o comando "FG". Também precisamos do número do trabalho do comando de Jobs.

Primeiro, determine o trabalho que você deseja trazer para o primeiro plano:

$ jobs

Agora, use o comando "FG":

$ fg %

Destacando os processos do terminal

Qualquer processo associado a um terminal é encerrado quando o terminal fechar, seja em primeiro plano ou em segundo plano. Para evitar o término do processo, dissociamos o processo de destino do terminal/shell.

Método 1:

Para rejeitar um processo, primeiro precisamos de um processo de fundo:

$ sim "qwerty"> /dev /null &

Verifique a lista de trabalhos de fundo em execução:

$ jobs

Observe o número de série do trabalho de fundo alvo. Agora, use o comando "Desenk" para destacá -lo do terminal:

$ DONOWN %

O trabalho -alvo deve agora desaparecer da lista de empregos:

$ jobs

No entanto, você ainda pode ver o processo em execução em segundo plano:

$ ps aux

Método 2:

Outra maneira de destacar um processo do terminal pai é usar o comando "Nohup". Mantém um processo em execução em segundo plano, mesmo depois de fechar o terminal.

O uso de "Nohup" é o seguinte:

$ nohup &

Verifique se o trabalho é criado com sucesso:

$ jobs

Método 3:

Este método destaca completamente o processo de destino. É uma maneira mais eficaz de destacar os aplicativos da GUI.

Por exemplo, para iniciar o Firefox e separá -lo completamente do terminal, use o seguinte comando:

$ Firefox /dev/null &

Aqui:

  • O /dev/null é um dispositivo especial no Linux que se livra de quaisquer dados que sejam escritos para ele.
  • No comando anterior, a entrada é lida e a saída é enviada para /dev/null. Saiba mais sobre as outras maneiras de usar o /dev /null.

Conclusão

Demonstramos as várias maneiras de executar um processo em segundo plano. Também mostramos as maneiras de destacar um processo do terminal pai. Essas técnicas podem ser úteis sempre que trabalhar com o terminal ou executar um script.

Se você precisar executar certos comandos em um padrão específico, podemos descarregá -lo como um serviço Systemd. Para máquinas remotas, também podemos usar as ferramentas de terceiros como Ansible para automatizar quase tudo.

Computação feliz!