Imagine se um processo crítico está em execução no seu sistema e está a demorar muito tempo. De repente, precisas de sair do teu sistema. Se você sair, seus processos vão parar, e você certamente vai querer evitar isso. Se você quer que seu processo de execução seja continuado sem qualquer interrupção, então você precisa do comando nohup.

nohup (significa não desligar) é um comando que ignora o sinal HUP. Deves estar a perguntar-te Qual é o sinal do HUP., É basicamente um sinal que é entregue a um processo quando sua concha associada é terminada. Normalmente, quando nos desligamos, então todos os programas e processos em execução são desligados ou parados. Se quisermos continuar a executar o processo mesmo após a saída ou a desconexão da linha de comandos atual, podemos usar o comando nohup. Ele torna os processos imunes aos sinais HUP, a fim de fazer o programa correr mesmo depois de sair. Com nohup, você não vai precisar mais de login por um longo tempo apenas para esperar que o processo seja concluído.,

neste artigo, vamos explicar como usar o comando Nohup em diferentes cenários no Linux.,garding o nohup de comando, use o seguinte comando:

$ nohup –help

Para encontrar as informações de versão do nohup, use o seguinte comando:

$ nohup –version

Iniciar um processo usando Nohup

Se você deseja manter um comando ou processo de execução, mesmo se você sair da shell, use o nohup seguida o comando para executar:

$ nohup comando

uma Vez que você executar o comando acima, o resultado, juntamente com as mensagens de erro, será adicionado ao nohup.,sair o ficheiro na pasta pessoal ou na pasta actual. Agora, se a shell estiver fechada ou você sair, o comando acima executado não será terminado.

Redireccione o resultado para diferentes ficheiros

por omissão, o resultado do comando nouhup é adicionado ao nohup.fora o ficheiro. Para redirecionar esta saída para algum outro arquivo, use > operador de redirecionamento seguido pelo nome do arquivo específico. Por exemplo, temos usado o seguinte comando para gravar o resultado do comando nohup para um novo ficheiro chamado “myscript.sh”.

$ sudo nohup ./minuto.,sh > myscipt.sh &

Iniciar um processo em segundo plano usando o Nohup

Para iniciar e colocar o processo em plano de fundo, você vai precisar usar o nohup da seguinte forma:

$ nohup comando &

& símbolo indica o shell para executar o comando em segundo plano. É semelhante ao comando nohup acima, exceto que quando a sessão termina, ele retorna imediatamente para a linha de comandos shell. Para trazê-lo de volta à vanguarda, use o comando “fg”.,

a saída de todos os comandos que executar será anexada ao nohup.fora o ficheiro. Poderá ver este ficheiro com o comando cat nohup no Terminal. O número 80132 na imagem acima indica o número de identificação do processo (PID) do processo rodando em segundo plano.

iniciar vários processos em segundo plano usando nohup

você pode executar vários comandos em segundo plano usando o comando nohup. No exemplo a seguir, os comandos mkdir, ping e ls são executados em segundo plano usando o comando nohup.,

$ nohup bash -c ” mkdir arquivos &&
ping -c 1 google.com && ls’> saída.txt

Terminar o processo de execução em segundo plano

Para terminar um processo em execução no plano de fundo, use o comando kill, como segue:

$ kill -9 PID

Você vai encontrar o PID de um processo para usar o nohup com “&”., Outra maneira de encontrar o PID é através do comando pgrep-A. Por exemplo, se você tiver executado o comando Ping com nohup, ele vai continuar correndo no fundo, mesmo se você fechar a shell. Agora, neste caso, para encontrar o PID de um processo de Ping a correr em segundo plano, use este comando:

$ pgrep –a ping

irá listar todos os processos associados ao comando Ping.,

agora para terminar o processo de Ping em execução em segundo plano, use o comando kill como se segue:$ kill-9 80928So, esta foi a breve introdução do comando nohup no Linux. O comando Nohup é usado para evitar que um processo importante seja terminado quando você sair ou fechar a sessão. Ajuda muito quando você está executando um processo, especialmente scripts que levam muito tempo para completar.