50% de desconto todos os planos, por tempo limitado. Começando em $2.48/mo
Faltam 8 minutos
Servidores e SO

Como funciona o comando nohup no Linux – sintaxe, casos de uso e exemplos

Ada Lovegood By Ada Lovegood 8 minutos de leitura Atualizado em 14 de julho de 2024
comando nohup

Se você é um desenvolvedor Linux você sabe a importância da consistência e confiabilidade de suas sessões. Os processos de longa execução no Linux precisam continuar mesmo depois de você sair de uma sessão. Felizmente, o Linux possui um comando funcional para essa finalidade. O comando nohup permite que você mantenha os comandos em execução ininterruptos em segundo plano. Dessa forma, evita a perda de dados e economiza um tempo valioso. Este guia orientará você em tudo o que você precisa saber sobre o comando nohup do Linux, desde sua sintaxe e opções até exemplos práticos e solução de erros comuns.

Compreendendo a sintaxe nohup do Linux

O comando nohup é fácil de usar e direto. Ele permite que você execute comandos ou scripts em segundo plano para ter certeza de que eles continuarão a ser executados mesmo depois de você sair do terminal. Veja como usá-lo:

nohup [command] [arguments] &

Você deve substituir [comando] com o comando ou script que você deseja executar. E [argumento] são quaisquer argumentos ou opções exigidos pelo comando. O & símbolo envia o comando para ser executado em segundo plano. Vejamos um exemplo:

nohup myscript.sh &

Neste exemplo, myscript.sh é um script bash que continuará sendo executado mesmo se você fechar o terminal. A saída será redirecionada para um arquivo chamado nohup.out por padrão, a menos que você especifique outro caminho.

Explorando opções nohup

Embora o comando nohup em si não tenha muitas opções, entender como usá-lo de forma eficaz com vários comandos e técnicas de redirecionamento pode melhorar seu desempenho. Primeiro, vamos ver como podemos obter informações sobre o comando nohup:

nohup –-help 
nohup --version

Esses dois comandos fornecem algumas informações úteis, mostrando a mensagem de ajuda e a versão do nohup.

Executando um processo com o comando nohup

Se quiser executar um processo com o comando nohup, você pode seguir a mesma estrutura que expliquei na última seção:

nohup [command]

Se você quiser executar um processo em segundo plano, basta adicionar & até o final do seu comando.

Executando vários processos em segundo plano com o comando nohup

Agora, e se você quiser executar mais de um processo em segundo plano usando o comando nohup?

nohup bash -c '[command A] && [command B]' &

Substituir [comando A] e [comando B] com os comandos que você deseja executar em segundo plano. Imagine que você deseja primeiro atualizar os pacotes do sistema e depois limpar os arquivos desnecessários e deseja fazer isso usando o comando nohup:

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

Neste exemplo, nada permite que os processos de atualização e limpeza continuem em execução em segundo plano. Assim, as tarefas de manutenção do sistema são concluídas sem a necessidade de manter o terminal aberto.

Redirecionando a saída personalizada

A saída deste processo será redirecionada para nohup.out por padrão. Mas e se você quiser receber a saída em outro caminho? Veja como você pode fazer isso:

nohup [command] > [/path/to/new/output.txt]

Lembre-se de substituir os valores em [] com o comando e caminho de arquivo desejados.

Combinando nohup com outros comandos

nohup pode ser combinado com outros comandos e pipes para criar cadeias de comando poderosas. Vejamos um exemplo disso:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

Aqui, o encontrar comando é usado para procurar arquivos de log e grep é usado para pesquisar o termo “ERROR”. A saída combinada é redirecionada para erro_logs.txt.

Nesta seção, cobrimos as opções e casos de uso mais comuns do comando nohup. Ao dominar essas instruções, você pode usar o nohup com eficácia para executar processos Linux em segundo plano.

Erros comuns e solução de problemas

Usar o comando nohup geralmente é simples, mas você pode enfrentar alguns erros comuns durante o processo. Compreender esses erros e saber como solucioná-los pode economizar tempo e frustração. Então, vamos ver quais são esses erros comuns e como navegá-los:

Permissão negada

Este erro ocorre quando o script ou comando que você está tentando executar não tem permissão de execução. A saída do erro é semelhante a esta: nohup: falha ao executar o comando ‘myscript.sh’: Permissão negada

Para resolver esse problema, você precisa ter certeza de que o script ou comando possui as permissões corretas. Você pode adicionar permissão de execução usando o chmod comando:

chmod +x myscript.sh 
nohup ./myscript.sh &

Comando não encontrado

Este erro ocorre se o comando ou script não for encontrado no local especificado ou não estiver disponível em seu PATH. A saída do erro é semelhante a esta: nohup: falha ao executar o comando ‘myscript.sh’: arquivo ou diretório inexistente

Para resolver este erro você deve verificar se o comando ou script existe e está no diretório correto. Talvez seja necessário fornecer o caminho absoluto para o script:

nohup /path/to/myscript.sh &

Certifique-se também de que o comando esteja instalado e disponível em seu PATH.

Sem saída

Às vezes, você pode perceber que não há saída no terminal ou no arquivo de saída. Se o comando produzir uma saída, mas você não a vir, ele poderá ser redirecionado para um caminho diferente do arquivo padrão ou poderá haver um problema com as permissões do arquivo. Para superar esse problema, você precisa especificar explicitamente o arquivo de saída para garantir que ele seja redirecionado corretamente:

nohup myscript.sh > output.log 2>&1 &

Por exemplo, este comando redireciona a saída padrão e o erro padrão para um arquivo chamado output.log.

O script não está sendo executado em segundo plano

Às vezes, seu script ou comando parece estar em execução, mas não em segundo plano. O motivo geralmente é simples. Você pode ter esquecido de adicionar o & símbolo no final do comando para executá-lo em segundo plano. A solução também é simples, apenas certifique-se de adicioná-la e pronto.

Processo suspenso ou sem resposta

Um processo iniciado com nohup pode travar ou parar de responder. Isso pode acontecer se o processo estiver aguardando entrada ou se houver problemas com os recursos que ele está tentando acessar. Existem duas soluções para este problema:

  • Verifique a entrada necessária: Certifique-se de que o comando não exija nenhuma entrada interativa.
  • Problemas de recursos: Verifique se o comando tem acesso aos recursos necessários (por exemplo, arquivos, rede).

Substituindo nohup.out

Se você estiver executando vários processos em segundo plano usando o comando nohup, poderá substituir involuntariamente o nohup.out arquivo. Para evitar esse problema, você pode escolher um caminho específico para cada processo. Dessa forma, cada processo possui seu arquivo de saída exclusivo e o caminho padrão não é sobrescrito.

Ao aprender sobre o erro comum nohup e suas soluções, você pode usar o comando nohup sem problemas.

Conclusão

O comando nohup é uma ótima ferramenta para qualquer usuário Linux que precisa executar processos em segundo plano porque garante que seus processos continuem em execução mesmo após o logout. Neste guia, cobrimos a sintaxe básica, exploramos várias opções e discutimos erros comuns junto com dicas de solução de problemas. Dominar o comando nohup permite que você gerencie tarefas de longa duração com eficiência, o que aumenta sua produtividade e habilidades de gerenciamento de sistema.

Se você é um desenvolvedor Linux que deseja maximizar sua experiência com Linux, considere atualizar para um software confiável. VPS Linux. Nosso serviço VPS baseado em nuvem oferece suporte 24 horas por dia, 7 dias por semana e uma garantia de tempo de atividade de 99,95%, o que significa que seus aplicativos funcionam perfeitamente em todos os momentos e você pode obter ajuda a qualquer hora do dia. Com infraestrutura robusta e recursos confiáveis, nosso VPS foi projetado para atender às demandas dos programadores Linux. Além disso, você pode ter sua distribuição Linux preferida pré-instalada, tornando a configuração rápida e fácil. Leve seus projetos Linux para o próximo nível com um VPS que oferece a potência e a flexibilidade que você precisa.

Perguntas frequentes

Qual é a diferença entre nada e &?

nada impede que um processo seja encerrado quando o usuário efetua logout, enquanto & executa um processo em segundo plano. Usando nada garante que o processo continue após o logout e combiná-lo com & permite que ele seja executado em segundo plano.

Por que o nohup é usado?

nada é usado para garantir que um comando ou script continue em execução mesmo depois que o usuário efetua logout ou o terminal é fechado. É essencial para processos de longa duração que precisam permanecer ativos sem intervenção do usuário.

O que é o arquivo nohup out?

O nohup.out file é o arquivo de saída padrão onde nohup redireciona a saída padrão e o erro padrão de um comando. Se nenhum outro arquivo de saída for especificado, a saída do comando será salva em nohup.out no diretório atual.

Compartilhar

Mais do blog

Continue lendo.

Os melhores aplicativos auto-hospedados que você pode executar com a imagem da capa do Cosmos Cloud com painéis de aplicativos em torno de um painel do Cosmos.
Servidores e SO

Os melhores aplicativos auto-hospedados que você pode executar com o Cosmos Cloud: arquivos, mídia, senhas, automação e muito mais!

Talvez você tenha configurado o Cosmos Cloud e agora queira ver quais aplicativos combinam bem com ele, ou talvez você ainda nem tenha decidido sobre o Cosmos e só queira ver se ele se adapta bem ao seu trabalho.

Nick PrataNick Prata 16 minutos de leitura
Portainer vs Cosmos Cloud para gerenciamento de aplicativos Docker com diagrama de configuração híbrida e operações neon vs blocos de acesso.
Servidores e SO

Portainer vs Cosmos Cloud: melhor opção para gerenciamento de aplicativos Docker

Se você já conhece o Docker e deseja apenas uma maneira mais limpa de executar uma pilha de aplicativos crescente, aqui está a resposta curta para Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para direção

Nick PrataNick Prata 14 minutos de leitura
Gráfico de recurso Cosmos Cloud vs CasaOS vs Umbrel mostrando três caminhos auto-hospedados dentro de um mundo abstrato de rede em nuvem.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual plataforma auto-hospedada se adapta à sua configuração?

A resposta curta é que o CasaOS ainda é o lugar mais fácil para começar, o Umbrel tem a sensação de curadoria mais limpa e o Cosmos Cloud faz mais sentido quando você deseja um controle mais rígido sobre o doma.

Nick PrataNick Prata 11 minutos de leitura

Pronto para implantar? A partir de $ 2,48 / mês.

Nuvem independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolução do dinheiro em 14 dias.