web-dev-qa-db-fra.com

Comment puis-je reprendre un travail arrêté sous Linux?

Comment puis-je reprendre un travail arrêté sous Linux? J'utilisais emacs et j'ai accidentellement appuyé sur ctrl-z, ce qui m'a renvoyé à la console. Je peux le voir quand je tape 'jobs'

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

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

357
Ilkka

Les commandes générales de contrôle des tâches sous Linux sont les suivantes:

  • jobs - liste les jobs en cours
  • fg - reprend le travail suivant dans la file d'attente
  • fg% [nombre] - reprend le travail [nombre]
  • bg - Pousse le travail suivant de la file d'attente en arrière-plan
  • bg% [numéro] - Pousse le travail [numéro] en arrière-plan
  • kill% [nombre] - élimine le travail numéroté [nombre]
  • kill - [signal]% [numéro] - Envoie le signal [signal] au numéro de travail [numéro]
  • disown% [numéro] - désavoue le processus (plus aucun terminal ne sera propriétaire), la commande sera donc active même après la fermeture du terminal.

C'est à peu près tous. Notez le% infront du numéro de travail dans les commandes - c'est ce qui indique à Kill que vous parlez de travaux et non de processus.

250
Majenko

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.

47
NickD

Juste pour ajouter aux autres réponses, bash vous permet de sauter la fg si vous spécifiez un numéro de travail.

Par exemple, ils sont équivalents et reprennent le dernier travail:

%
%%
fg
fg %

Ceux-ci reprennent le travail n ° 4:

%4
fg 4
31
grawity

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é son nom, kill est simplement un outil pour envoyer un signal au processus, permettant aux processus de communiquer entre eux. Un "signal de destruction" n'est qu'un des nombreux signaux standard.)

Conseil bonus: entourez le premier caractère du nom du processus avec [] pour éviter que la commande grep n'apparaisse dans les résultats. par exemple. pour trouver le processus emacs, utilisez ps aux | grep [e]macs

18
mahemoff