O comando nohup do Linux faz com que o sistema ignore o sinal HUP (hangup). Desta forma, um processo pode continuar a ser executado em segundo plano. A saída obtida é re­di­re­ci­o­nada para o ficheiro nohup.out ou para outro ficheiro à sua escolha.

O que é o comando nohup do Linux?

Para com­pre­en­der o que é o comando nohup do Linux, vale a pena dar uma olhadela no SIGHUP. Trata-se de um sinal que também é gerado no Linux quando ocorre uma falha de ligação numa linha de dados entre o sistema operativo e outra aplicação. No entanto, em certas situações, pode ser ne­ces­sá­rio que este sinal não seja enviado. Uma situação em que isso seria muito im­por­tante é, por exemplo, quando uma aplicação deve continuar em execução, mesmo que o uti­li­za­dor tenha encerrado a sessão no sistema. Para suprimir o sinal e manter os programas a funcionar em segundo plano, utiliza-se o comando nohup do Linux.

Como funciona o comando nohup no Linux?

O programa nohup do Linux está dis­po­ní­vel em todas as dis­tri­bui­ções comuns do Linux, como o Debian e o Ubuntu. Por isso, não é ne­ces­sá­rio instalar o programa se­pa­ra­da­mente. Podes utilizá-lo para que o sistema inicie um programa es­pe­cí­fico em segundo plano e, assim, separar o programa escolhido do shell de sessão. Todas as saídas são re­di­re­ci­o­na­das au­to­ma­ti­ca­mente para a pasta nohup.out. Es­pe­ci­al­mente quando se trata de processos de longa duração, tem a vantagem de poder desligar-se sem in­ter­rom­per o processo.

Qual é a estrutura de um comando nohup?

A estrutura básica do comando nohup do Linux é sempre a mesma:

$ nohup [Comando] [Argumento] [&]
bash

«[Comando]» e «[Argumento]» são pa­râ­me­tros que podem ser ajustados e es­pe­ci­fi­ca­dos. Se pretender permitir que os processos continuem a ser exe­cu­ta­dos em segundo plano após o en­cer­ra­mento da sessão, utilize «[&]».

Que opções podem ser uti­li­za­das com o comando nohup?

Além das duas opções padrão «-h» ou «–help» e «-v» ou «—version», o comando nohup do Linux não aceita quaisquer outras opções. Apenas quando não é es­pe­ci­fi­cado nenhum parâmetro para «[Comando]» é que permite a opção «-p» ou «–parents».

Exemplos para o comando nohup do Linux

A seguir, vamos mostrar-lhe alguns exemplos de uti­li­za­ção que o ajudarão a com­pre­en­der melhor como funciona este comando.

$ nohup bash ejemplo.sh
bash

Isto faz com que o comando seja executado em primeiro plano. A saída do comando é au­to­ma­ti­ca­mente re­di­re­ci­o­nada para o ficheiro nohup.out.

$ nohup bash ejemplo.sh > output.txt
bash

Desta forma, garante-se que a saída seja re­di­re­ci­o­nada para o ficheiro output.txt.

$ nohup bash ejemplo.sh &
bash

Esta opção faz com que o comando continue a ser executado em segundo plano. Se quiser reverter esta ação e trazer o comando de volta para o primeiro plano, utilize o comando fg.

Ir para o menu principal