Pausando um programa de longa duração no terminal?

13

Existe uma combinação de teclas do teclado que eu possa usar para pausar um programa em execução no terminal? Caso seja importante, não pretendo executar qualquer outra coisa dentro desse terminal enquanto o programa estiver em pausa. Eu só quero pausar a execução do programa e retomar mais tarde. Como posso fazer isso?

    
por becko 14.05.2014 / 16:35

3 respostas

13

Pressione Controle + Z .

Isso suspenderá o processo e retornará você para um shell. Você pode fazer outras coisas agora, se quiser, ou pode retornar ao processo em segundo plano, inserindo % seguido por Retornar .

Observe que, se você estiver fazendo isso com algo que precisa ser responsivo, você estará sobrecarregando o sistema, mas se for algo como uma nano instance, tudo ficará bem.

    
por Oli 14.05.2014 / 16:38
12

Isso é controle de trabalho bash

Use o CTL-Z para interromper o trabalho.

Então você pode digitar bg para executá-lo em segundo plano, se houver apenas um trabalho, ele faz exatamente isso.

Se você tiver mais de um, use jobs para listar e use fg% N e bg% N no efeito desejado .

Exemplo:

ubuntu@ip-10-170-59-120:~$ find /usr -name "*.so"
/usr/lib/python2.7/dist-packages/OpenSSL/crypto.so
/usr/lib/python2.7/dist-packages/OpenSSL/SSL.so
/usr/lib/python2.7/dist-packages/OpenSSL/rand.so
/usr/lib/python2.7/dist-packages/gi/_glib/_glib.so
/usr/lib/python2.7/dist-packages/gi/_gobject/_gobject.so
/usr/lib/python2.7/dist-packages/gi/_gi.so
/usr/lib/python2.7/config/libpython2.7.so
...
^Z
[1]+  Stopped                 find /usr -name 

ubuntu@ip-10-170-59-120:~$ jobs
[1]+  Stopped                 find /usr -name "*.so"

ubuntu@ip-10-170-59-120:~$ fg %1
find /usr -name "*.so"
/usr/lib/php5/20090626+lfs/apc.so
/usr/lib/php5/20090626+lfs/memcache.so
/usr/lib/php5/20090626+lfs/mysql.so
...

Para qualquer outra coisa que não esteja anexada ao TTY, você pode usar SIGSTOP e SIGCONT . Então, por exemplo, se você acha que um daemon está causando problemas, mas você não sabe qual deles é, você pode enviar o PID SIGSTOP, é como fazer uma pausa, então verificar se há mudanças, OK, não é isso, e enxaguar e repetir até que você encontrar o problema.

Espero que isso ajude.

    
por ppetraki 14.05.2014 / 16:45
1

Eu sei que esta resposta está um pouco atrasada, mas você pode usar o atalho Ctrl+s para parar o seu programa (se você quiser ler o resultado ou algo assim), então você pode continuar usando o atalho Ctrl+q .

    
por Sidahmed 29.06.2017 / 14:41