2011-04-08 09:38:29 +0000 2011-04-08 09:38:29 +0000
353
353

Comment puis-je reprendre un emploi interrompu sous Linux ?

Comment puis-je reprendre un emploi interrompu sous Linux ? J'utilisais emacs et j'ai accidentellement appuyé sur ctrl-z, ce qui m'a ramené à la console. Je peux le voir quand je tape “jobs”

[*****]$ jobs
[1]+ Stopped emacs test_queue.cpp

Réponses (5)

404
404
404
2011-04-08 09:39:38 +0000

La commande fg est ce que vous voulez utiliser. Vous pouvez également lui donner un numéro de travail s'il y a plus d'un travail arrêté.

268
268
268
2011-04-08 11:55:01 +0000

Les commandes générales de contrôle des tâches dans Linux sont : - jobs - liste les emplois actuels - fg - reprendre l'emploi suivant dans la file d'attente - fg %[nombre] - reprendre l'emploi [nombre] - bg - pousser l'emploi suivant dans la file d'attente en arrière-plan - bg %[nombre] - Poussez le travail [nombre] en arrière-plan - kill %[nombre] - Tuez le travail numéroté [nombre] - kill - [signal] %[nombre] - Envoyez le signal [signal] au travail [nombre] - disown %[nombre] - désactivez le processus (plus aucun terminal ne sera propriétaire), donc le commandement sera toujours en vie même après la fermeture du terminal.

C'est à peu près tout. Notez le pourcentage de non-respect du numéro de tâche dans les commandes - c'est ce qui indique à kill que vous parlez de tâches et non de processus.

48
48
48
2013-08-26 21:04:40 +0000

Vous pouvez également taper %<process_name> ; c'est-à-dire que vous appuyez sur Ctrl-Z dans emacs, puis vous pouvez taper %emacs dans la console et le ramener au premier plan.

34
34
34
2011-04-08 14:03:36 +0000

Pour compléter les autres réponses, bash vous permet de sauter le fg si vous indiquez un numéro d'emploi.

Par exemple, ceux-ci sont équivalents et reprennent le dernier emploi :

%
%%
fg
fg %

Ces reprennent l'emploi n°4 :

%4
fg 4
23
23
23
2016-02-04 19:49:59 +0000

Si vous ne l'avez pas lancé depuis le terminal actuel, utilisez ps aux | grep <process name> pour trouver le numéro de processus (pid), puis reprenez-le avec :

kill -SIGCONT <pid>

(Malgré le nom, kill est simplement un outil pour envoyer un signal au processus, permettant aux processus de communiquer entre eux. Un “signal d'arrêt” n'est qu'un des nombreux signaux standard).

Astuce : envelopper le premier caractère du nom du processus avec [] pour éviter que la commande grep elle-même n'apparaisse dans les résultats. Par exemple, pour trouver le processus emacs, utilisez ps aux | grep [e]macs