Saltar para o conteúdo principal
50% de desconto todos os planos, tempo limitado. A partir de $2.48/mo
8 min left
Servidores e SO

Como Funciona o Comando nohup no Linux. Sintaxe, Casos de Uso e Exemplos

Ada Lovegood Por Ada Lovegood 8 min de leitura Atualizado Jul 14, 2024
nohup command

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.

Explorar as 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 exige qualquer input interativo.
  • 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.

Share

Mais do blogue

Continue a ler.

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

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