Posso retomar a criação depois de um Ctrl + C?

2

Estou instalando o gcc versão 5.1 em um cluster de supercomputador. Eu configurei e agora estou executando o comando make. Já faz várias horas e ainda está em execução, pois é uma instalação longa, mas o dia de trabalho acabou e eu tenho que sair. Se eu usar a tecla Ctrl + C para sair da marca, se eu voltar a executar, amanha de manha será retomada de onde parou? Ou terá que começar de novo? Isso causará problemas ou erros se eu interromper a marca?

    
por Syrianthunder10 23.06.2015 / 22:57

1 resposta

5

Quando você pressiona Ctrl + C , o processo (tecnicamente, o grupo de processos) que está sendo executado em seu terminal é eliminado. Você não pode ressuscitar. Tudo o que você pode fazer é executá-lo novamente.

A execução de make envolve muitos passos que cada um compila um único arquivo, ou vincula alguns arquivos, ou executa um teste, etc. Quando você pressiona Ctrl + C , a etapa atual é cancelada, mas os dados de todas as etapas anteriores ainda estão lá. O utilitário make foi desenvolvido para descobrir rapidamente quais etapas já foram executadas e não precisam ser executadas novamente. Então, se você simplesmente executar make novamente, ele analisará a situação por um curto período (talvez alguns segundos para grandes projetos) e retomará de onde parou.

Se a máquina não for reinicializada durante a noite, você poderá manter comandos em execução, mesmo se você sair pela noite. Inicie um multiplexador de terminal, como a tela ou tmux . Por exemplo, de um terminal, execute

screen

Isso abre um novo shell no seu terminal. Aqui, mude para o diretório relevante e digite make . Em seguida, desanexe da sessão de tela pressionando Ctrl + A d . Você está de volta ao prompt original, mas o comando dentro da tela ainda está em execução. Você pode efetuar logout, fazer login novamente e reconectar a sessão de tela ainda em execução, executando

screen -rd
    
por 24.06.2015 / 00:54