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: