Comando nohup - Linux
Linux e Unix

Comando nohup - Linux



Quando executamos processos no Unix, esses processos podem rodar em foreground ou em background. Em um processo foreground, esperamos no terminal o término do processo. Desta forma, não podemos usar o terminal até que o processo tenha terminado. Podemos colocar o processo de primeiro plano em background emitindo os comandos a seguir:


Ctrl-z
bg


Os processos no Unix serão terminados quando você fizer logout do sistema ou sair do shell atual, não importando se eles estiverem rodando em foreground ou em background. Eles recebem o sinal HUP (hangup), que é um aviso do terminal a seus processos dependentes de que ocorreu um logout. A única forma de assegurar que um processo que esteja rodando atualmente não seja terminado quando sairmos é usando o comando nohup.


O comando nohup redireciona para a saída padrão. Ele redireciona mensagens para um arquivo chamado nohup.out no diretório a partir do qual o comando foi executado. Portanto, se quísermos executar um script de nome limpa.sh em background a partir do diretório atual, podemos executar o seguinte comando:


$ nohup limpa.sh &


O caractere & diz ao sistema para rodar o comando ou script em background. Caso não o usemos, o comando será executado em foreground.


O comando nohup também possui a opções --help e --version:
--help
Mostra a ajuda do comando e sai
--version
Mostra informações sobre a versão do comando e sai.


Exemplos:


1. Queremos rodar um comando de busca de arquivos no sistema, e sabemos que o comando poderá demorar muito para executar. Não queremos que o comando seja interrompido se por acaso sairmos de nossa sessão, e ele rodará em segundo plano para que o terminal seja liberado. Usaremos então o seguinte comando:


$ nohup find / -iname *.txt &
Aparecerá então a seguinte saída:


Na primeiro linha temos o PID do processo e na segunda linha uma mensagem que nos informa que a saída está sendo redirecionada ao arquivo padrão nohup.out. Para vermos o resultado do comando find basta posteriormente abrir esse arquivo e ler seu conteúdo.
Veja que o arquivo nohup.out foi criado:
$ ls no*


E ele contém o resultado do processamento do comando find:
$ cat nohup.out


2. Mesmo exemplo que o anterior, mas queremos redirecionar a saída para um arquivo chamado resultado.odt:


$ nohup find / -iname *.txt > resultado.odt &



loading...

- Comando Wait - Esperando A Finalização De Um Job No Linux
Comando wait Podemos usar o comando wait para esperar a finalização de uma tarefa (job). Este comando recebe como argumentos um ou mais IDs de processos. É útil por exemplo quando estamos escrevendo scripts do shell e queremos que o script espere...

- Comandos Pinky E W - Mostrando Informações Sobre Usuários Logados No Sistema Linux
Neste arquivo estudaremos dois comandos muito úteis para visualizar informações sobre os usuários logado atualmente no sistema: pinky e w. Comando pinky O comando pinky é como um comando finger “mais leve”, sendo utilizado para imprimir na...

- Verificando Processos Com Os Comandos Ps E Pstree No Linux
O comando ps gera um instantâneo dos processos atuais no terminal e permite mostrar informações sobre uma seleção dos processos ativos. Sintaxe:ps [opções]Há três estilos de opções disponíveis: 1. Opções padrão do Unix: podem ser agrupadas...

- Comando Lsof - Listar Arquivos E Processos Abertos
lsof significa "listar arquivos abertos", e é um comando usado para retornar uma listagem de todos os arquivos abertos e dos processos que os abriram.Um arquivo aberto pode ser um arquivo de disco, diretório, biblioteca, pipes, dispositivos e  sockets...

- Comparando Arquivos No Linux / Unix
Comando cmpCompara o conteúdo de dois arquivos e envia o resultado para a saída padrão.Usa-se o comando cmp para arquivos que não são de texto para verificar se são idênticos. Para comparar arquivos de texto, use o comando diff.Se os arquivos...



Linux e Unix








.