Terminal OS X et Unix Il y a des travaux arrêtés.

Les utilisateurs qui tentent de quitter les sessions de terminal sont souvent bloqués par la création de rapports sur les tâches arrêtées. La découverte, le redémarrage et la suppression de ces processus sont des leçons essentielles pour les utilisateurs de Mac et Unix.

Susan m'a tweeté hier:

Après avoir terminé un de vos tutoriels de recettes techniques mac hier, je ne pouvais pas me déconnecter de ma session de terminal sous OS X. Le message «Il y a des tâches arrêtées» est apparu et m'a empêché de quitter. Qu'ai-je fait de mal?

Tu n'as rien fait de mal. Ce message vous informe simplement que vous avez laissé une programmation s'exécutant en arrière-plan tout en travaillant dans le shell. Généralement, un programme est placé en arrière-plan en appuyant sur le raccourci Ctrl-Z pendant l'exécution de la programmation.

Lorsque cela se produit, le terminal masque le programme et vous avertit avec une commande comme celle-ci:

[3] + top arrêté

Le [nombre] est le nombre de programmes actuellement en arrière-plan. Le signe plus indique qu'il s'agit du dernier à entrer dans l'arrière-plan. Le dernier mot est le programme qui a été arrêté. Dans mon exemple, j'ai utilisé control-Z pour arrêter le Haut application.

commande d'emplois

Pour afficher une liste de tous les programmes d’arrière-plan, utilisez la commande emplois commander.

[1] Top arrêté
[2] Top arrêté
[3] - Top arrêté
[4] + homme arrêté telnet

Dans mon exemple ci-dessus, vous pouvez voir que j'ai 4 applications arrêtées. j'ai Haut dans le fond trois fois et homme telnet une fois que.

commande fg

À travers le terminal le fg La commande ramènera le dernier programme au début. Ce sera l'application marquée avec le [+] via le emplois commander. Une fois que le programme est revenu au premier plan, vous pouvez le quitter correctement au lieu de l'arrêter. Par exemple, on sortirait complètement Haut ou homme en appuyant sur q clé. De plus, control-c tuera généralement le programme par rapport à control-z qui l'arrêtera.

De plus, vous pouvez passer à un programme arrêté spécifique via le numéro de travail. Par exemple, ceci basculerait vers le programme marqué [2]:

fg% 2

tuer la commande

Vous pouvez également arrêter des programmes via le tuer commander. Pour utiliser la commande kill, nous devons accéder aux numéros d'identification de processus (PID) des travaux arrêtés à l'aide de la commande emplois -l commander:


[1] 833 Suspendu: 18 haut
[3] - 860 Suspendu: 18 haut
[4] + 861 suspendu: telnet à 18 personnes

le -l Outre notre emplois La commande affiche les PID. Ce sont les chiffres qui ne sont pas entre parenthèses. Ce sont 833, 860 et 861 dans notre exemple ci-dessus.

L'utilisation de la commande kill avec le PID d'un programme mettra fin à cette application. Si nous voulions tuer le homme Dans notre exemple, nous utiliserions la commande suivante:


tuer 861

En outre, en tant que raccourci, vous pouvez supprimer tous les programmes répertoriés à l'aide de la commande jobs via le code suivant:


tuer 'emplois -p'