Mantenha a execução do script bash quando abortado via CTRL + X ou CTRL + C

0

Esta é uma pergunta muito nooby eu acredito e eu tentei de tudo para evitar perguntar aqui, mas eu não encontrei respostas em qualquer lugar na internet inteira.

Vá em frente e me dê um voto negativo, mas, por favor, responda-me como manter a execução do script bash de longo tempo necessário quando abortado via CTRL + X ou CTRL + C?

  • Eu quero executar o comando $ sh myscript.sh e liberar meu terminal por CTRL + X / CTRL + C, o script deve continuar a ser executado nos próximos 10 a 20 minutos, conforme necessário.

  • Eu quero executar o script php como $ php /path/to/myphpscript.php e liberar meu terminal por CTRL + X / CTRL + C, o script deve continuar nas próximas 2 horas, conforme necessário.

Como ter isso?

Cronjob não é a minha solução.

    
por Miloš Đakonović 05.02.2015 / 11:18

2 respostas

7

Uma vez que o seu termine um trabalho com CTRL + C ele é terminado e você não pode dizer a um trabalho morto para continuar e pegar onde isso estava.

O termo correto é executar um trabalho em segundo plano, o que você pode fazer de antemão:

 ./script &

Você pode usar isso em combinação com nohup para tornar o processo imune a interrupções, ele continuará a ser executado mesmo se você sair da sua sessão de bash:

 nohup ./script &

Se o script já estiver sendo executado, você pode suspender um trabalho em primeiro plano com CTRL + Z e instruí-lo para continuar em segundo plano com bg

Há muito mais no capítulo sobre controle de trabalho do manual bash.

    
por 05.02.2015 / 11:32
0

Você pode usar o utilitário de tela. da página man:

DESCRIPTION Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells).

    
por 05.02.2015 / 11:23