Comando nohup do Linux: manter os processos em execução após o encerramento da sessão
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 é redirecionada para o ficheiro nohup.out ou para outro ficheiro à sua escolha.
O que é o comando nohup do Linux?
Para compreender 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 necessário que este sinal não seja enviado. Uma situação em que isso seria muito importante é, por exemplo, quando uma aplicação deve continuar em execução, mesmo que o utilizador 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á disponível em todas as distribuições comuns do Linux, como o Debian e o Ubuntu. Por isso, não é necessário instalar o programa separadamente. Podes utilizá-lo para que o sistema inicie um programa específico em segundo plano e, assim, separar o programa escolhido do shell de sessão. Todas as saídas são redirecionadas automaticamente para a pasta nohup.out. Especialmente quando se trata de processos de longa duração, tem a vantagem de poder desligar-se sem interromper 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 parâmetros que podem ser ajustados e especificados. Se pretender permitir que os processos continuem a ser executados em segundo plano após o encerramento da sessão, utilize «[&]».
Que opções podem ser utilizadas 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 é especificado 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 utilização que o ajudarão a compreender melhor como funciona este comando.
$ nohup bash ejemplo.shbashIsto faz com que o comando seja executado em primeiro plano. A saída do comando é automaticamente redirecionada para o ficheiro nohup.out.
$ nohup bash ejemplo.sh > output.txtbashDesta forma, garante-se que a saída seja redirecionada para o ficheiro output.txt.
$ nohup bash ejemplo.sh &bashEsta 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.