En étudiant Linux, j'ai essayé de me déconnecter ... Quelqu'un était hors de vue et je n'ai pas pu me déconnecter. J'ai rencontré un travail de fond là-bas, alors je l'ai recherché et je l'ai résumé. [Environnement] Etudier avec Cygwin Version 3.1.4-1
Fond = lieu invisible Job = traitement
∴ Traitement effectué invisible aux humains
Les travaux actifs sont affichés dans une liste avec ces travaux de commande magique.
Le point de vue de Job
$ jobs #liste
$ jobs -l #L'ID de processus [PID] est également affiché
$ jobs -p #Afficher uniquement l'ID de processus [PID]
$ jobs -r #Fonctionnement(running)Afficher le processus uniquement
$ jobs -s #Arrêt(stopped)Afficher le processus uniquement
Comment compter les emplois
$ sleep 120 #Ceci est 1 emploi
$ sleep 10 & echo “I’m a job“ #C'est aussi 1 emploi
$ echo “I’m a echo” && echo “me too“ #C'est aussi 1 emploi
Si vous l'exécutez normalement, il sera exécuté en tant que travail de premier plan. En d'autres termes, la partie du travail qui peut être vue à l'avant. Je peux voir le travail (travail que je dois surveiller) = je ne peux pas faire d'autres travaux
∴ Aucune autre tâche ne peut être effectuée car le shell est arrêté pendant l'exécution de la tâche de premier plan.
Travail de premier plan
$ sleep 120 #Regardez pendant 120 secondes
Si vous exécutez une tâche en arrière-plan en arrière-plan, vous pouvez exécuter une autre tâche. Mais comme je suis dans les coulisses, je ne reçois aucun signal du clavier.
∴ Le travail et le shell sont exécutés en même temps pendant l'exécution en arrière-plan
Travail d'arrière-plan
$ sleep 120 &
#&Courir en arrière-plan avec
& Est un miso.
Étant donné que les humains ne peuvent effectuer que des tâches uniques, nous demandons aux PC le multitâche. Par exemple, vous ne pouvez pas lire en lavant la vaisselle. Par conséquent, vous pouvez lire pendant que vous êtes lavé au lave-vaisselle. Comme.
5 emplois GO!
$ sleep 120
#ctrl+Annulation du travail avec z
$ sleep 120 &
$ sleep 120 &
$ sleep 120 &
$ sleep 120 &
Liste d'emplois
$ jobs #Affichage de la liste
[1]+Arrêter de dormir 120
[2]Sommeil courant 120&
[3]Sommeil courant 120&
[4]Sommeil courant 120&
[5]-Sommeil courant 120&
# +Le travail est-il en cours d'exécution
# -Le travail qui a été exécuté immédiatement avant
Vous pouvez l'exécuter, mais si vous essayez de vous déconnecter pendant qu'il s'exécute en arrière-plan, vous serez bloqué. Il y a deux façons de s'arrêter ici
commande kill
$ jobs -l #-l ID de processus facultatif[PID]afficher
#Confirmez le PID du travail que vous souhaitez terminer
[1]+ 1663 Stopped sleep 120
[2]1674 Sommeil courant 120&
[3]1675 sommeil en cours d'exécution 120&
[4]1676 Sommeil courant 120&
[5]1677 sommeil en cours d'exécution 120&
[6]1678 Sommeil courant 120&
[8]1680 sommeil en cours d'exécution 120&
[9]1681 Sommeil courant 120&
[10]1682 Sommeil courant 120&
[11]-1683 Sommeil courant 120&
$ kill 1674
#Vérifiez si vous avez terminé
$ jobs -l
[1]+ 1663 Stopped sleep 120
[2] 1674 Terminated sleep 120
[3]1675 sommeil en cours d'exécution 120&
[4]1676 Sommeil courant 120&
[5]1677 sommeil en cours d'exécution 120&
[6]1678 Sommeil courant 120&
[8]1680 sommeil en cours d'exécution 120&
[9]1681 Sommeil courant 120&
[10]1682 Sommeil courant 120&
[11]-1683 Sommeil courant 120&
Transmettez le numéro de travail à la commande fg et terminez le travail avec ctrl + c.
commande fg
$ sleep 120 &
[2] 1686
$ jobs
[1]+Arrêter de dormir 120
[2]-Sommeil courant 120&
#Transmettez le numéro de travail à la commande fg
$ fg 2
sleep 120
#Ici ctrl+Fin de tâche en C
Le travail qui s'est arrêté avec ctrl + z reste pour toujours. Traité par la résurrection → fin.
-Redémarrez en tant que travail de premier plan avec la commande fg et terminez-le.
commande fg
$ jobs
[1]+Arrêter de dormir 120
$ fg 1 #Transmettez le numéro de travail à la commande fg
sleep 120
$ sleep 120
[1]+Arrêter de dormir 120
#ctrl+Terminer par c
-Redémarrer en tâche de fond avec la commande bg et tuer
commande bg
$ bg 1 #Transmettez le numéro de travail à la commande bg
[1]+ sleep 120 &
$ jobs -l #-l Confirmation PID en option
[1]+1687 sommeil en cours d'exécution 120&
$ kill 1687
$ jobs
[1]+ Terminated sleep 120
kill est l'ID de processus et fg et bg sont les numéros de travail. Quelle est la différence entre un processus et un travail?
[Linux] Fin du processus ou du travail, quel est le meilleur?
Recommended Posts