Pular para o conteúdo

Mantendo o programa em execução após logout

Dica publicada em Linux / Comandos
D. M. Tavares prof.dmt
Hits: 13.819 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.

Mantendo o programa em execução após logout

Uso os computadores do laboratório de informática (computadores com GNU/Linux) e às vezes tenho de executar alguns programas (trabalhos de algumas disciplinas) que necessitam de muito tempo de execução. Gostaria de saber se é possível executar esses programas sem manter o gerenciador de janelas travado (descanso de tela com senha), ou seja, gostaria de manter esses programas em execução após logout?

Resposta:

Existe uma maneira bem simples de manter um programa em execução após logout. Isso pode ser feito com o comando nohup.

O comando nohup executará o programa passado como parâmetro, informando ao mesmo para ignorar o sinal de hangup. Exemplo de uso:

$ nohup ./caixeiro_viajante &

Prontinho, agora você poderá sair do sistema (logout) tranqüilamente, tendo a certeza que seu programa continuará em execução.

OBS.: Caso o programa a ser deixado em execução necessite de bastante recursos do sistema e não tenha tanta urgência, para não comprometer o trabalho de outros usuários (em termos de desempenho), você poderá baixar a prioridade do mesmo aumentado seu "custo de execução". Isso pode ser feito com o comando renice. O "custo" varia de -20 a 19 para o root e de 0 a 19 para os demais usuários. Lembre-se que quanto maior o número "custo" menor a prioridade do processo.

Assim, para diminuir a prioridade do processo, obtenha o PID do mesmo usando (por exemplo) o comando ps:

$ ps
  PID TTY          TIME CMD
 4201 pts/1    00:00:00 bash
 4373 pts/1    00:00:00 xterm
 4497 pts/1    00:00:00 caixeiro_viajante
 4498 pts/1    00:00:00 ps

Depois, baixe a prioridade do processo em questão com o comando renice:

$ renice 14 4497

4497: prioridade antiga = 0; prioridade nova = 14

Abraços,

Prof. D.M.T.

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.

Exibindo o conteúdo ao contrário

Mensagens do boot

Desmontando um dispositivo ocupado

TAR seletivo

Til (~) no modo console do Slackware

Instalar pacotes RPM no Ubuntu

Renomeando arquivos simultaneamente com apenas uma linha de comando

Processos de usuário em segundo plano e como manipulá-los

Criando um alias no GNU/Debian sem complicação

Calculadora para modo texto

#1 Comentário enviado por chmod000 em 02/04/2008 - 11:34h
Uma alternativa ao nohup seria o comando disown.
(http://www.vivaolinux.com.br/dicas/verDica.php?codigo=9417)

O comando disown funciona de forma semelhante ao nohup, mas com uma diferença básica;

O nohup é utilizado junto com o comando do programa a ser executado.

O disown deve ser utilzado após o início da tarefa, por exemplo:

$ ./caixeiro_viajante & #depois de algum tempo você percebe que esta
#tarefa vai demorar mais do que você pensava.

# pega o pid do processo
$ pgrep caixeiro_viajante
4497

# desconecta ele do seu shell, jogando para o init (pai de todos)
$ disown -h 4497

Pronto, agora pode fazer logout.
#2 Comentário enviado por korvoman em 02/04/2008 - 12:06h
outra ferramenta de funcionalidade similar é o screen.
(http://polishlinux.org/howtos/screen-tips-tricks/)

O screen gerencia multiplas sessões e pode-se retorna as mesmas, mesmo após ao logout.

Para criar um sessão nomeada apt :

screen -S apt -md apt-get -y dist-upgrade &

listar as sessoes ativas:

screen -list

e retorna a sessao :

screen -r apt

Contribuir com comentário

Entre na sua conta para comentar.