Linux Nohup Comando

nohup comando executa outro programa especificado como argumento e ignora todos os SIGHUP (hangup) sinais. SIGHUP é um sinal que é enviado para um processo quando seu terminal de controle é fechado.

geralmente, quando você executa um programa sobre SSH, se a sua ligação cair ou você sair, a sessão é terminada, e todos os processos executados a partir do terminal irá parar. É aqui que o comando nohup vem a calhar., Ignora todos os sinais de desligamento, e o processo continuará a correr.

Como Usar o Comando nohup #

A sintaxe para o nohup comando é da seguinte maneira:

nohup COMMAND 

O comando não aceita quaisquer outras opções, exceto o padrão --help e --version.,

Vamos dar uma olhada no exemplo a seguir:

nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'

nohup executa o mycommand comando em primeiro plano e redireciona a saída do comando para o nohup.out arquivo. Este ficheiro é criado na pasta de trabalho actual . Se o utilizador que executa o comando não tiver permissões de escrita na pasta de trabalho, o ficheiro é criado na pasta pessoal do utilizador.

Se você sair ou fechar o terminal, o processo não é terminado.,

executar o comando em segundo plano #

Usando nohup em primeiro plano não é muito útil porque você não será capaz de interagir com a shell até que o comando termine.

Para executar o comando em segundo plano , acrescente o & símbolo no final do comando:

nohup mycommand &

a saída inclui O shell de IDENTIFICAÇÃO do trabalho (cercado com parênteses) e o ID do processo:

 25177

Você pode usar o ID de trabalho para trazer o comando para o primeiro plano usando o fg comando.,

Se, por algum motivo, você quer terminar o processo, use o kill comando seguido do ID de processo:

kill -9 25132

Redirecionando a Saída para um Arquivo #

Por padrão, nohup redireciona a saída do comando para o nohup.out arquivo. Se você quiser redirecionar o resultado para um arquivo diferente, use o redirecionamento padrão da shell.,

Por exemplo, para redirecionar a saída padrão e erro padrão para o mycommand.out você usaria:

nohup mycommand > mycommand.out 2>&1 &

Para redirecionar a saída padrão e erro padrão para arquivos diferentes:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternativas #

Existem várias alternativas de programas que você pode usar para evitar um comando para ser finalizado quando você fechar o terminal ou desconectado.,

Screen #

Screen ou GNU Screen é um programa multiplexador de terminal que lhe permite iniciar uma sessão de ecrã e abrir qualquer número de janelas (terminais virtuais) dentro dessa sessão. Os processos em execução no ecrã continuarão a correr quando a sua janela não estiver visível, mesmo que seja desligado.

Tmux #

Tmux é uma alternativa moderna à tela GNU. Com o Tmux, você também pode criar uma sessão e abrir várias janelas dentro dessa sessão. As sessões de Tmux são persistentes, o que significa que os programas em execução no Tmux continuarão a ser executados mesmo que você feche o terminal.,

Deserda #

disown é uma construção de shell que remove uma tarefa shell do controle de trabalho da shell. Ao contrário de nohup, você pode usar disown em processos em execução também.

conclusão #

nohup permite-lhe evitar que os comandos sejam terminados quando sai ou sai do terminal.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *