O comando nohup

Publicado por Fábio Berbert de Paula em 25/01/2008

[ Hits: 146.642 ]

Blog: https://fabio.automatizando.dev

 


O comando nohup



Essa é uma dica simples e rápida, mas que me quebrou um galho (ou seria árvore?) um dia desses. Eu precisava deixar um comando rodando num servidor remoto, porém não continuaria conectado via ssh neste. Ao executar o comando passando o famoso "&" no final da linha o terminal ficava livre, mas ao deslogar do terminal o comando recebia um sinal de hangup e "morria".

Enfim, pra rodar um comando em background e fazer com que o mesmo fique imune a sinais de hangup, usa-se o comando nohup.

Exemplo de uso:

# nohup ./comando_que_vai_demorar &

A saída do comando será gravada no arquivo nohup.out, que será criado no diretório corrente (onde o comando foi executado). Agora você pode desconectar do terminal remoto e ir pra casa tranquilo. Simples assim!

Outras dicas deste autor

Como checar a temperatura do processador via linha de comando

O inutilitário Gtick

Git pull: "commit your changes or stash them before you merge" [Resolvido]

O comando slocate

Como personalizar o thumbnail de seu site no Facebook

Leitura recomendada

Recuperando o LILO em 3 passos no Slackware

Comandos de paginação

Como saber o número serial do HD

Listar as máquinas/dispositivos online em determinada rede

Inserindo legenda em vídeo na linha de comando com o FFmpeg

  

Comentários
[1] Comentário enviado por denilsoneskas em 25/01/2008 - 11:36h

Fabio esse comando pode ser utilizado quando se usa um backup por exemplo?????

[2] Comentário enviado por pstglia em 25/01/2008 - 15:05h

Boa dica Fábio. Isso ajuda pacas

Caso a sessão que disparou o processo caia (receba o HUP), o owner o processo passa a ser o processo INIT (1)

Existem também o comando screen; Tem o mesmo objetivo do nohup

[3] Comentário enviado por brunocarezza em 11/05/2010 - 07:08h

O Screen não tem o mesmo objetivo que o nohup. O Screen é um gerenciador de janelas para ambiente texto com um número desconsertante de opções. São finalidades muito diferentes. Uma comparação medíocre.

[4] Comentário enviado por edivaldo145 em 29/11/2011 - 18:41h

Salvou a minha vida shaushauhsa

[5] Comentário enviado por leoudimg em 20/03/2012 - 15:15h

Este tópico é antigo mas salvou minha vida também!!!!

[6] Comentário enviado por fabiocs em 11/07/2014 - 12:55h

Boa!
Obrigado!
Estamos em 2014 e esta dica me ajudou muito!

[7] Comentário enviado por david.sousarj em 17/12/2014 - 01:11h

Linux é muito bom! Sempre tem um comando escondido para fazer exatamente aquilo que a gente precisa! Valeu pela dica.

[8] Comentário enviado por thais.soares@ em 13/07/2015 - 13:41h

Ano 2015 e mesmo assim me ajudou pacas rsrs

[9] Comentário enviado por denismo em 04/08/2015 - 20:37h


Eu tenho um problema. nohup não aceita um parâmetro de entrada em a.out. Por exemplo

a.out 10

o 10 é um parâmetro de entrada em a.out, e nohup dá erro.

Valeu galera

[10] Comentário enviado por danielbbarcelos em 03/02/2016 - 11:25h

Ano 2016 e eu também fui salvo hahahaha valeu galera

[11] Comentário enviado por renatonxcosta em 10/02/2017 - 08:07h

Ano 2017 e e mesmo assim me ajudou muito! Hahahahaha
Valeu Fábio!

[12] Comentário enviado por soldadolinux em 19/03/2018 - 20:21h

E se eu quiser executar vários comandos ex:
nohup cpulimit -e programa1 -l 40 &
nohup cpulimit -e programa2 -l 60 &
nohup cpulimit -e programa3 -l 20 &
vão funcionar de boa?

[13] Comentário enviado por cristianjohn em 19/06/2018 - 21:10h

Só para manter a tradição, estamos em 2018 e esse comando acabou de me salvar, kkkkk

[14] Comentário enviado por RodRoudini em 19/12/2018 - 13:13h

Estamos paticamente em 2019 e esse comando continua salvando vidas kkkkk Valeu galera !!!!

[15] Comentário enviado por Aysion em 14/01/2019 - 20:25h

Ano 2019 e valeu a dica, agora posso deixar meu raspberry com Ubuntu core compactando uma lista de videos a noite toda rsrs

[16] Comentário enviado por victorquimas em 29/08/2019 - 11:12h

O comando continua rodando após o reinicio?

[17] Comentário enviado por fabio em 29/08/2019 - 14:16h


[16] Comentário enviado por victorquimas em 29/08/2019 - 11:12h

O comando continua rodando após o reinicio?


Não. Se reiniciar a máquina ele é encerrado. É apenas um comando, não é um serviço.

[18] Comentário enviado por linscomt em 11/09/2020 - 02:27h

Eu passo aqui sempre desde 2018 tenho péssima memoria.

Estava fazendo uns teste e percebi que quando enviava
code terminal: sudo nohup node "index.js" &
e teclava ^C 'Control+C' ele ficava em back... segundo plano mas ao fechar o terminal percebia que parava de rodar, então comecei os teste criei um arquivo "execute.sh" e dentro dele

#!/bin/bash or #!/bin/sh
nohup node "index.js" &

Então ao dar o comando no terminal :sudo sh execute.sh &
e logo percebendo que estava executando normal dei o comando ^C depois fechei o terminal e a aplicação continuou rodando em segundo plano até
alguém dar um kill nele. Achei interessante até fiz um fileA.sh que executa um fileB.sh para deixar o fileB.sh em segundo plano.
Como sou ruim de memoria tomara que fique aqui, para sempre poder lembrar me.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts