Un travail arrêté est un travail qui a été temporairement placé en arrière-plan et qui n'est plus en cours d'exécution mais qui utilise toujours des ressources (par exemple, la mémoire système). Ce travail n'étant pas associé au terminal actuel, il ne peut pas générer de sortie et ne reçoit aucune entrée de l'utilisateur.
Vous pouvez voir les tâches en cours d’exécution à l’aide de la jobs
commande intégrée de bash, probablement d’autres shells. Exemple:
user@mysystem:~$ jobs
[1] + Stopped python
user@mysystem:~$
Vous pouvez reprendre un travail arrêté en utilisant la fg
commande intégrée basun (premier plan). Si vous avez plusieurs commandes qui ont été arrêtées, vous devez spécifier celle à reprendre en transmettant le numéro de jobpec sur la ligne de commande fg
. Si un seul programme est arrêté, vous pouvez utiliser fg
seul:
user@mysystem:~$ fg 1
python
À ce stade, vous êtes de retour dans l'interpréteur python et pouvez quitter en utilisant control-D.
Réciproquement, vous pouvez kill
utiliser la commande avec soit Jobspec ou PID. Par exemple:
user@mysystem:~$ ps
PID TTY TIME CMD
16174 pts/3 00:00:00 bash
17781 pts/3 00:00:00 python
18276 pts/3 00:00:00 ps
user@mysystem:~$ kill 17781
[1]+ Killed python
user@mysystem:~$
Pour utiliser le numéro de travail, faites précéder le nombre par la touche pourcentage (%):
user@mysystem:~$ kill %1
[1]+ Terminated python
Si vous émettez une commande de sortie avec des tâches arrêtées, l'avertissement que vous avez vu sera donné. Les travaux seront laissés en cours d'exécution pour la sécurité. C'est pour vous assurer que vous savez que vous essayez de supprimer des emplois que vous auriez peut-être oubliés. La deuxième fois que vous utilisez la commande exit, les travaux sont terminés et le shell se ferme. Cela peut entraîner des problèmes pour certains programmes qui ne sont pas conçus pour être supprimés de cette manière.
En bash, il semble que vous puissiez utiliser la logout
commande qui va tuer les processus arrêtés et sortir. Cela peut entraîner des résultats indésirables.
Notez également que certains programmes peuvent ne pas être fermés de cette manière et que votre système risque de se retrouver avec de nombreux processus orphelins utilisant beaucoup de ressources si vous prenez l'habitude de le faire.
Notez que vous pouvez créer un processus d’arrière-plan qui s’arrêtera s’il nécessite l’intervention de l’utilisateur:
user@mysystem:~$ python &
[1] 19028
user@mysystem:~$ jobs
[1]+ Stopped python
Vous pouvez reprendre et supprimer ces travaux de la même manière que les travaux que vous aviez arrêtés avec l' Ctrl-z
interruption.