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

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

Ada Lovegood By Ada Lovegood 8 min 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.

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.

Compartilhar

Mais do blogue

Continue a ler.

Imagem de capa Best Self-Hosted Apps You Can Run with Cosmos Cloud com painéis de aplicações em torno de um painel Cosmos.
Servidores e SO

Melhores aplicações self-hosted que pode executar com Cosmos Cloud: ficheiros, media, palavras-passe, automação e mais!

Talvez já tenha configurado o Cosmos Cloud e queira ver que aplicações combinam bem com ele, ou talvez ainda nem tenha decidido sobre o Cosmos e queira apenas perceber se se encaixa no seu fluxo de trabalho

Nick SilverNick Silver 16 min de leitura
Capa Portainer vs Cosmos Cloud for Managing Docker Apps com diagrama de configuração híbrida e blocos neon ops vs access.
Servidores e SO

Portainer vs Cosmos Cloud: melhor opção para gerir aplicações Docker

Se já conhece o Docker e quer apenas a forma mais limpa de executar uma stack de aplicações em crescimento, aqui está a resposta curta a Portainer vs Cosmos Cloud. O Portainer é a escolha mais forte para gestão direta

Nick SilverNick Silver 14 min de leitura
Gráfico de destaque Cosmos Cloud vs CasaOS vs Umbrel a mostrar três caminhos self-hosted dentro de um mundo abstrato de rede em nuvem.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: que plataforma self-hosted se adequa à sua configuração?

A resposta curta é que o CasaOS continua a ser o ponto de partida mais fácil, o Umbrel tem a sensação curada mais limpa e o Cosmos Cloud faz mais sentido quando se quer controlo mais apertado sobre domínios

Nick SilverNick Silver 11 min de leitura

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

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