Pular para o conteúdo

O comando nohup

Dica publicada em Linux / Comandos
Fábio Berbert de Paula fabio
Hits: 148.461 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

netrw - o explorador de arquivos nativo do Vim

Empresa desenvolve CRM que funciona em Linux

Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal

MongoDB - Erro "not authorized ... to execute command" [Resolvido]

SQL: Combinando INSERT + SELECT para duplicação de registros

Como instalar o Lazarus no Fedora 27 [vídeo]

Atalhos do elementary OS

Detectando conflitos de IP

Expandindo partição LVM no Linux

Comando para manipulação de pacotes PKGTool

#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

Entre na sua conta para comentar.