Executar comandos Linux em segundo plano permite que o usuário continue executando outras tarefas enquanto o comando ainda está em execução. Para executar um comando em segundo plano, existem várias maneiras; Um dos métodos simples é adicionar um ampersand (&) no final da linha de comando.
Depois que um processo é definido para ser executado em segundo plano, podemos acessá -lo usando o empregos comando. Este artigo apresenta todas as maneiras diferentes de executar um comando em segundo plano.
A lista de maneiras diferentes de executar um processo em segundo plano é a seguinte:
A seguir, os detalhes de todos os métodos para executar um processo em segundo plano:
1: Usando o sinal de AMPERSAND (&)
No Linux AMPERSand (&) é um operador de shell que envia um comando em segundo plano como um processo separado. Ao combinar o AMPERSand (&) a um comando, ele será executado como um processo de fundo, permitindo que o shell continue processando outros comandos imediatamente.
Sintaxe para um processo em segundo plano usando amperes e sinal:
$ [comando] &
O símbolo de ampérs e é sempre adicionado no final do comando com um único espaço entre "&" e último caráter de comando.
Por exemplo, crie um processo de sono para 40 s.
$ Sleep 40
Como podemos ver, o terminal está executando o comando do sono e não nos permitindo executar qualquer outra tarefa.
Agora pressione “Ctrl + Z” Para parar este processo. Em seguida, executaremos o mesmo comando de sono desta vez, mas usando um operador de e -res e com ele configurará em segundo plano.
$ Sleep 40 &
Agora esse processo está em segundo plano. Para listar o processo de execução do plano de execução: Use:
$ jobs -l
Agora mate este processo de fundo usando:
$ Kill -9 [Job -id]
Por exemplo, para matar o atual uso do processo de sono em execução:
$ kill -9 6149
Agora o processo de sono é morto para confirmar a lista do processo de execução de fundo usando.
$ jobs -l
Aqui está outro exemplo de uso & ampersand O sinal é com o comando gedit.
Por exemplo, se abrirmos o editor de texto do Gedit diretamente usando o terminal, seremos obrigados a usar o shell para outro trabalho ou então precisamos interromper o processo atual primeiro.
$ gedit
O uso do comando acima abrirá o editor de texto que o abrirá na frente do terminal.
Mas depois de usar "&" no final do comando gedit, o shell é livre para usar para outros processos:
$ gedit &
2: Usando o comando 'BG'
O comando BG é a segunda maneira de executar comandos em segundo plano. Este comando permite que o usuário continue trabalhando no terminal enquanto o processo é executado em segundo plano, liberando o terminal para outras tarefas. O comando bg é usado para um processo de fundo de longa execução que é executado se o usuário efetuar login.
Como um ampersa e sinal de que não precisamos nos preocupar em adicioná -lo ao comando toda vez que envie texto BG para o terminal. Ele começará a executar o processo em segundo plano e libertar o terminal para uso futuro.
Por exemplo, vamos usar o exemplo anterior e enviar o comando do sono usando:
$ Sleep 40
Agora o processo está em execução e o terminal não está disponível para uso. Para usar o comando bg e enviar esse processo em segundo plano, devemos primeiro interromper o processo de execução atual pressionando “Ctrl+ Z” e executando este comando:
$ bg
Depois de enviar o comando bg, o processo de sono começou a continuar em segundo plano. Podemos ver um ampers e "&" no final, indicando que o processo atual está em segundo plano.
Para verificar o comando do processo em segundo plano, execute o comando jobs:
$ jobs -l
Para verificar o comando executado em fundo, use:
$ fg
Para matar o processo atual, use seu ID de trabalho com o comando Kill. Para verificar os trabalhos ID, execute:
$ jobs -l
Depois de conhecer o processo de Kill ID de Jobs usando:
$ Kill -9 [Job -id]
Por exemplo, para matar o uso atual do processo de sono em execução:
$ kill -9 6584
Para confirmar se o processo foi morto ou não, execute novamente o comando Jobs:
$ jobs -l
Podemos ver que o processo de sono não está mais funcionando em segundo plano:
3: Usando o comando Nohup
O comando Nohup é o terceiro em nossa lista de processos de fundo em execução no Linux. O comando significa "sem desligamento" e é usado para impedir que o processo seja encerrado até o término da sessão do terminal. Quando um processo é executado usando nohup, ele continua a ser executado mesmo que o usuário faça login e a saída do processo é redirecionada para um arquivo nomeado “Nohup.fora".
O comando Nohup para ping no Google continuamente em segundo plano é e a saída é redirecionada para um arquivo de texto no Googleping.TXT:
$ nohup ping google.com> googleping.TXT &
Depois de escrever este comando, podemos ver que o terminal é gratuito e um processo em segundo plano para ping no Google continuamente está em execução em segundo plano.
Para acessar o arquivo de log, podemos usar o seguinte comando:
$ CAT Googleping.TXT
O arquivo de log também pode ser acessado usando a GUI na tela inicial.
4: Usando o comando DisOwn
O comando decelown remove um processo do shell e o executa em segundo plano. Quando um processo é renegado, ele não está mais associado ao terminal e continua a ser executado mesmo depois que o usuário registra ou fecha o terminal.
Anteriormente, usamos o comando ampers e “&” que envia o processo em segundo plano após sua execução, mas quando fechamos o shell, o processo é encerrado. Para se livrar deste comando degradado está lá.
O comando decepto não pode funcionar de forma independente, mas no mínimo um processo deve estar em execução em segundo plano.
Execute o comando abaixo com um & ampers e sinal que enviará seu comando para o fundo.
$ ping google.com> googleping.TXT &
Depois que o arquivo for criado, podemos listá -lo usando o comando Jobs.
Agora, nosso processo está em segundo plano para destacá -lo do uso do terminal:
$ Dened
Execute o comando Jobs novamente para confirmar que o processo é destacado do terminal:
$ jobs -l
Como nosso processo está sendo executado atualmente, mas não é mais mostrado dentro do terminal:
Para confirmar nosso processo, podemos usar o comando CAT para acessar esse arquivo de ping:
$ CAT Googleping.TXT
Desfaiecionamos com sucesso esse processo do terminal, mas ele ainda está funcionando em segundo plano.
5: Usando o utilitário tmux
TMUX é um tipo de utilitário de multiplexador de terminal. Usando o TMUX, podemos criar várias sessões de terminal em um único shell. Ele fornece a capacidade de executar processos em segundo plano.
Para executar um processo em segundo plano no TMUX, você pode criar uma nova sessão e depois se destacar usando a combinação de chave Ctrl-B seguida por D.
Para instalar o utilitário tmux no Ubuntu e Linux Mint Uso:
$ sudo apt install tmux
Para instalar no Fedora Run:
$ sudo dnf install tmux
Para instalar no Arch Linux Run:
$ sudo pacman -s tmux
Agora execute o comando tmux para abrir um novo terminal:
$ tmux
Para criar uma nova sessão TMUX Use:
$ tmux novo -s [session_id]
Para listar todo o uso da sessão do TMUX:
$ tmux ls
Para matar um comando tmux session, use como:
$ tmux kill -session -t [session_id]
Por exemplo, para matar "0" Uso da sessão tmux:
$ tmux kill -session -t 0
Aqui listamos a atual sessão ativa do TMUX em execução e a matamos usando o comando acima:
Para dividir o terminal tmux verticalmente, pressione “Ctrl+B” e tipo %.
Para voltar ao terminal principal de tmux usar:
$ saída
Conclusão
A execução de aplicativos de segundo plano no Linux é um recurso poderoso que permite aos usuários manter suas tarefas de longa duração em execução, mesmo depois de sair do terminal ou fechar a janela. Geralmente um ampersand e sinal ou bg O comando é usado para enviar um processo em segundo plano. No entanto, também podemos usar nohup ou Denem comando para destacar um processo do terminal. Por fim, podemos usar o utilitário tmux Para criar vários terminais e executar processos de fundo sem perturbar o terminal.