web-dev-qa-db-fra.com

Mettre en pause un programme de longue durée dans le terminal?

Existe-t-il une combinaison de touches du clavier que je peux utiliser pour suspendre un programme exécuté dans le terminal? Au cas où cela serait important, je n’ai pas l’intention de lancer autre chose à l’intérieur de ce terminal tant que le programme est en pause. Je veux juste mettre en pause l'exécution du programme et le reprendre plus tard. Comment puis-je faire ceci?

15
becko

Presse Control+Z.

Cela suspend le processus et vous ramène à un shell. Vous pouvez faire autre chose maintenant si vous le souhaitez ou vous pouvez revenir au processus d’arrière-plan en entrant % suivi de Return.

Notez que si vous faites cela pour quelque chose qui doit être réactif, vous allez forcer le système, mais si c'est juste quelque chose comme une instance nano, tout devrait bien se passer.

17
Oli

C'est contrôle du travail bash

Utilisez CTL-Z pour arrêter le travail.

Ensuite, vous pouvez taper bg pour l'exécuter en arrière-plan, s'il n'y a que sur le travail, c'est exactement ce que vous faites.

Si vous en avez plusieurs, vous pouvez utiliser des travaux pour les répertorier et utiliser fg% N et bg% N à l’effet souhaité.

Exemple:

 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] + Arrêt de la recherche/usr -name 
 
 Ubuntu @ ip-10-170-59-120: ~ $ emplois 
 [1] + Arrêt de la recherche/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 
 ... 

Vous pouvez utiliser SIGSTOP et SIGCONT pour tout ce qui n’est pas attaché au téléscripteur. Ainsi, par exemple, si vous pensez qu'un démon pose des problèmes mais que vous ne le connaissez pas, vous pouvez envoyer le pid SIGSTOP, c'est comme si vous mettiez en pause, puis vérifiez si des modifications ont été apportées. trouvez le problème.

J'espère que cela t'aides.

14
ppetraki

Je sais que cette réponse est un peu en retard, mais vous pouvez utiliser le raccourci Ctrl+s pour arrêter votre programme (si vous voulez lire le résultat ou quelque chose comme ça), vous pouvez continuer à utiliser le raccourci Ctrl+q.

4
Sidahmed