Pré -requisitos:
Para executar as etapas deste guia, você precisa dos seguintes componentes:
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:
Para resolver essas questões, existem algumas opções:
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:
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!