50% de desconto todos os planos, por tempo limitado. A partir de $2.48/mo
8 min restantes
Servidores e SO

Como o Comando nohup Funciona em 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 de Linux, sabe a importância da consistência e confiabilidade de suas sessões. Processos de longa duração em Linux precisam continuar mesmo depois que você sair de uma sessão. Felizmente, Linux tem um comando funcional para esse fim. O comando nohup permite que você mantenha comandos em execução ininterrupta em segundo plano. Dessa forma, evita perda de dados e economiza tempo valioso. Este guia o orientará sobre tudo 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.

Entendendo a Sintaxe do nohup do Linux

O comando nohup é fácil de usar e direto. Ele permite que você execute comandos ou scripts em segundo plano para garantir que continuem executando mesmo depois que você sair do terminal. Veja como usá-lo:

nohup [command] [arguments] &

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

nohup myscript.sh &

Neste exemplo, myscript.sh é um script bash que continuará em execução 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 do nohup

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

nohup –-help 
nohup --version

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

Executando um Processo com o Comando nohup

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

nohup [command]

Se você quer executar um processo em background, é só adicionar & até o final do seu comando.

Executando Múltiplos 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 [command A] e [command B] com os comandos que você quer executar em segundo plano. Digamos que você queira primeiro atualizar os pacotes do sistema e depois limpar 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, nohup permite que os processos de atualização e limpeza continuem rodando em segundo plano. Assim suas tarefas de manutenção do sistema são concluídas sem exigir que você mantenha 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 que a saída vá para outro local? Veja como fazer isso:

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

Lembre-se de substituir os valores em [] com seu comando desejado e caminho do arquivo.

Combinando nohup com Outros Comandos

nohup pode ser combinado com outros comandos e pipes para criar fluxos de comando poderosos. Veja um exemplo:

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

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

Nesta seção, cobri as opções e casos de uso mais comuns do comando nohup. Dominando essas instruções, você consegue usar nohup de forma eficaz para rodar processos Linux em background.

Erros Comuns e Solução de Problemas

O comando nohup é geralmente simples de usar, mas você pode encontrar alguns erros comuns no processo. Entender esses erros e saber como resolvê-los economiza tempo e evita frustrações. Vamos ver quais são esses erros comuns e como contorná-los:

Permissão Negada

Este erro acontece quando o script ou comando que você está tentando executar não tem permissão de execução. A saída do erro é parecida com isto: nohup: falha ao executar comando 'myscript.sh': Permissão negada

Para resolver este problema, certifique-se de que o script ou comando tem as permissões corretas. Você pode adicionar permissão de execução usando o chmod Esta mesma string foi traduzida para árabe como: ':' Então você sabe que É traduzível, não é um nome de marca.

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

Comando Não Encontrado

Este erro ocorre quando o comando ou script não é encontrado no local especificado ou não está disponível no seu PATH. A mensagem de erro é parecida com esta: nohup: failed to run command 'myscript.sh': No such file or directory

Para resolver este erro, verifique se o comando ou script existe e está no diretório correto. Você pode precisar fornecer o caminho absoluto do script:

nohup /path/to/myscript.sh &

Certifique-se também de que o comando está instalado e disponível no seu PATH.

Sem Saída

Às vezes, você pode notar que não há saída no terminal ou no arquivo de saída. Se o comando produz saída, mas você não a vê, ela pode estar sendo redirecionada para um local diferente do arquivo padrão ou pode haver um problema de permissões. Para resolver isso, especifique o arquivo de saída explicitamente para garantir que seja redirecionado corretamente:

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

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

Script Não Executando 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: basta se certificar de que adicionou isso e pronto.

Processo Pendurado ou Sem Resposta

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

  • Verifique Se Há Entrada Necessária: Certifique-se de que o comando não requer entrada interativa.
  • Problemas de Recursos: Verifique se o comando tem acesso aos recursos necessários (por exemplo, arquivos, rede).

Sobrescrevendo nohup.out

Se você estiver executando vários processos em segundo plano usando o comando nohup, pode sobrescrever involuntariamente o nohup.out arquivo. Para evitar este problema, você pode escolher um caminho específico para cada processo. Desta forma, cada processo tem seu próprio arquivo de saída e o caminho padrão não é sobrescrito.

Ao aprender sobre os erros comuns do nohup e suas soluções, você pode usar o comando nohup sem problemas.

Conclusão

O comando nohup é uma ferramenta excelente para qualquer usuário Linux que precisa executar processos em segundo plano, pois garante que seus processos continuem funcionando mesmo após o logout. Neste guia, cobrimos a sintaxe básica, exploramos várias opções e discutimos erros comuns com dicas de resolução de problemas. Dominar o comando nohup permite gerenciar tarefas de longa duração de forma eficiente, o que melhora sua produtividade e habilidades de gerenciamento de sistema.

Se você é um desenvolvedor Linux que deseja maximizar sua experiência com Linux, considere fazer upgrade para um Linux VPSconfiável. Nosso serviço VPS baseado em nuvem oferece suporte 24/7 e uma garantia de tempo de atividade de 99,95%, o que significa que seus aplicativos funcionam perfeitamente o tempo todo 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, facilitando a configuração. Leve seus projetos Linux para o próximo nível com um VPS que oferece o poder e a flexibilidade que você precisa.

Perguntas Frequentes

Qual é a diferença entre nohup e &?

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

Por que nohup é usado?

nohup é usado para garantir que um comando ou script continue funcionando mesmo após o logout do usuário ou o fechamento do terminal. É essencial para processos de longa duração que precisam permanecer ativos sem intervenção do usuário.

O que é arquivo nohup out?

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

Compartilhar

Mais do blog

Continue lendo.

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud imagem de capa com painéis de apps ao redor de um painel Cosmos.
Servidores e SO

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud: Arquivos, Mídia, Senhas, Automação e Mais!

Depois que você configurou Cosmos Cloud e quer ver quais apps funcionam bem com ele, ou talvez ainda nem tenha decidido usar Cosmos e só quer ver como se encaixa no seu fluxo de trabalho

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

Portainer vs Cosmos Cloud: A Melhor Opção para Gerenciamento de Apps Docker

Se você já conhece Docker e quer apenas um jeito mais limpo de executar uma pilha de apps em crescimento, aqui está a resposta curta sobre Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para o controle direto

Nick PrataNick Prata 14 min de leitura
Cosmos Cloud vs CasaOS vs Umbrel gráfico de recursos mostrando três caminhos auto-hospedados dentro de um mundo de rede em nuvem abstrata.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual Plataforma Auto-hospedada se Encaixa na Sua Configuração?

A resposta curta é que CasaOS ainda é o lugar mais fácil para começar, Umbrel tem o visual mais limpo e curado, e Cosmos Cloud faz mais sentido quando você quer controle mais apertado sobre seu domínio

Nick PrataNick Prata 11 minutos de leitura

Pronto para fazer o deploy? A partir de $2,48/mês.

Cloud independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Reembolso em 14 dias.