Comment afficher et exécuter les processus d'arrière-plan Linux

L'exécution des processus est vitale dans tout système d'exploitation utilisé car ils garantissent que les applications et les autres éléments du système d'exploitation peuvent agir de manière correcte à la fois dans la compatibilité et dans l'exécution de leurs fonctions.

Chaque système d'exploitation peut gérer les processus différemment, mais dans le cas de Linux, en règle générale, les processus sont associés à un terminal. Cela signifie qu'il doit être ouvert pour que le processus puisse fonctionner normalement, mais cette action peut conduire à des situations telles que :

  • Le terminal ouvert peut contenir beaucoup de données de sortie ou de messages d'erreur/de diagnostic, ce qui rend difficile non seulement la lecture des données mais aussi leur gestion.
  • Si nous devions fermer le terminal, le processus ainsi que ses processus secondaires finiraient par affecter directement la tâche à effectuer.

Dans ce type de scénario, il est essentiel d'exécuter les processus nécessaires en arrière-plan, un processus en arrière-plan est le processus qui sera exécuté de manière cachée et pour son fonctionnement l'intervention de l'utilisateur n'est pas requise, de cette manière, bien que le terminal est fermé principal, le processus continuera à exécuter sa tâche. Les processus d'arrière-plan s'appliquent aux tâches qui peuvent prendre du temps, telles que les scripts, les fichiers de téléchargement et autres, où nous ne pouvons pas attendre la fin de l'action sans rien faire.

Sous Linux, nous pouvons exécuter des processus au premier plan ou en arrière-plan. Un programme au premier plan lorsqu'il est exécuté dans le terminal, nous ne pourrons exécuter aucune autre commande jusqu'à la fin du processus, mais cela peut être fait à partir de l'arrière-plan ou de l'arrière-plan.

Un programme qui s'exécute en arrière-plan une fois démarré n'utilise pas le terminal depuis son exécution jusqu'à la fin. Pour exécuter un logiciel ou une commande en arrière-plan depuis le terminal, nous ajoutons Si nous ajoutons une esperluette (&) à la fin de la commande ou du script que nous voulons exécuter, elle sera exécutée en arrière-plan par le système d'exploitation. Exemple:

 nano & 
Solvetic expliquera comment nous pouvons voir et exécuter des processus en arrière-plan sur Linux.

1. Voir la liste des processus avec la commande ps sous Linux


Avec la commande ps, on peut connaître l'état d'un processus. Ps est l'état du processus ou l'état du processus. La commande ps ne répertorie pas les processus et spécifie certaines colonnes PID, TTY, TIME et CMD.

PID (numéro de processus)Chaque processus reçoit un numéro d'identification unique, qui est attribué par le noyau Linux.

ATSest le terminal associé au processus, il peut également s'agir d'un autre périphérique d'entrée.

TEMPSLa durée d'exécution du processus.

CMDC'est le nom de la commande en cours d'exécution, bash est le processus shell.

Par exemple, avec la commande ps -A, il nous montrera tous les processus en cours d'exécution.

2. Démarrer un processus ou une commande en arrière-plan sous Linux en utilisant bg sous Linux


La commande bg a été développée en tant que commande de contrôle des travaux qui reprend les travaux suspendus, mais les exécute en arrière-plan.

Étape 1
La syntaxe de base de cette commande est la suivante :

 bg [travail] 
Étape 2
Dans le cas où un processus est déjà en cours d'exécution, nous devons appuyer sur les touches suivantes pour l'arrêter puis entrer la commande bg pour continuer son exécution en arrière-plan en tant que travail. Pour cet exemple, nous utiliserons les lignes suivantes :

Ctrl + Z

 tar -czf home.tar.gz. (processus en cours qui sera arrêté avec Ctrl + Z) bg (exécution de la commande en tâche de fond) jobs (visualisation des jobs effectués)

Étape 3
Nous pouvons voir que le processus est toujours en cours, mais maintenant en arrière-plan. Il sera également possible de lancer un traitement directement en tâche de fond en saisissant l'esperluette à la fin de celui-ci :

 tar -czf home.tar.gz. & Travaux 

3. Enregistrer les processus Linux en cours après avoir quitté le terminal sous Linux


C'est un point essentiel car, comme nous l'avons mentionné, en mode normal lorsque le terminal est fermé, tous les processus actifs se terminent, de sorte qu'il est possible de leur permettre de continuer à fonctionner même lorsque le terminal est fermé.

Pour cela on peut utiliser la commande disown qui sera utilisée après qu'un processus ait démarré et ait été mis en tâche de fond, la commande disown est un job shell dont la mission est d'éliminer les jobs de la liste active du Shell actif.

Étape 1
Avec l'exécution de disown, lorsque nous fermons le terminal, le travail ne plantera pas et n'enverra de SIGHUP à aucun travail enfant. Sa syntaxe de base est :

 désavouer jobID 
Étape 2
Pour son fonctionnement, nous exécuterons ce qui suit :
 sudo rsync Templates / * / var / www / html / files / & (commande pour exécuter) jobs (jobs actifs) disown -h% 1 (ordre de ne pas fermer le processus ou la commande) jobs (affichage des jobs)

NoterEn cas d'exécution de plusieurs processus ou commandes, nous pouvons voir que chacun d'eux reçoit un identifiant d'identification, celui-ci doit être saisi avec disown pour spécifier quel processus continuera à s'exécuter.

Étape 3
Les options à utiliser avec disown sont :

-àSupprime tous les travaux si jobID n'est pas fourni.

-hMarque chaque ID de tâche afin que SIGHUP ne soit pas envoyé à la tâche si le shell reçoit un SIGHUP.

-rEfface uniquement les travaux en cours d'exécution.

4. Enregistrer les processus Linux en cours après avoir quitté le terminal sous Linux


La tâche de base de la commande nohup est d'empêcher l'annulation automatique de la commande lors de la déconnexion ou de la sortie du shell. Lors de l'utilisation de la commande nohup (no hangup), le signal de raccrochage (HUP), qui est envoyé à un processus pour l'informer que l'utilisateur s'est déconnecté, est intercepté par nohup afin de permettre au processus de continuer à s'exécuter en quelques secondes.

Étape 1
La syntaxe d'utilisation est la suivante :

 commande nohup [commande-argument …] 
Étape 2
Pour ce cas, nous utiliserons l'exemple suivant. Si l'entrée standard est un terminal, nohup le redirige depuis /dev/null. Par conséquent, la saisie du terminal n'est pas possible lors de l'exécution d'une commande avec nohup. Dans le cas où la sortie standard est un terminal, la sortie de la commande est ajoutée au fichier nohup.out ou $ HOME / nohup.out. Si l'erreur standard est un terminal, elle est redirigée vers la sortie standard. Pour enregistrer la sortie dans un fichier, nous devons utiliser "nohup command> file".
 nohup tar -czf iso.tar.gz Modèles / * & jobs

5. Dissocier un processus Linux dans le terminal

Étape 1
Si le but est de séparer complètement un processus du terminal, nous devrions utiliser la syntaxe suivante :

 app / dev / null & 
Étape 2
Par exemple:
 firefox / dev / null & 

6. Utiliser des processus d'arrière-plan avec Screen sous Linux


En cas d'utilisation d'une commande en arrière-plan, avec les options nohup et &), elle sera exécutée même après la fermeture de la session, le problème est que, lorsque nous nous reconnecterons à la même session, nous ne verrons pas le travail actif dans l'arrière-plan, pour corriger cela, il y a la commande screen.

screen est un gestionnaire de fenêtres plein écran qui gère un terminal physique entre plusieurs processus, normalement les shells étant interactifs. Chaque terminal virtuel offre les fonctions d'un terminal DEC VT100 et, en plus, plusieurs fonctions de contrôle des normes ISO 6429 (ECMA 48, ANSI X3.64) et ISO 2022 qui le rendent extrêmement dynamique.

Lorsque nous exécutons screen, une seule fenêtre est créée avec un shell ou la commande spécifiée, puis contournée afin de pouvoir utiliser le programme normalement.

Étape 1
Pour installer screen sous Linux, nous allons exécuter ce qui suit. Là, nous entrons la lettre S pour confirmer le téléchargement et l'installation.

 écran d'installation sudo apt

Étape 2
Une fois installé, nous exécutons la commande "screen" et nous verrons ce qui suit :

Étape 3
Là, nous appuyons sur la touche Entrée pour être redirigé vers la nouvelle fenêtre où nous exécutons le processus ou la commande à utiliser en arrière-plan :

 sudo tar czf temp.tar.gz / tmp & 

Étape 4
Nous pourrons visualiser les fenêtres actives à l'aide de. Pour quitter la session d'écran, nous pouvons utiliser les touches

Ctrl + a + d

Ctrl + alt + d

 écran -ls 

7. Arrêter ou tuer un processus suspendu ou en arrière-plan sous Linux


Pour cette action, qui consiste à terminer l'exécution du processus en tâche de fond, on peut utiliser la commande "kill" et à la place du PID on peut spécifier l'identifiant du job, par exemple :
 jobs (liste des jobs en cours) kill% 2 (le processus d'arrêt ou d'arrêt s'identifie comme 2)

8. Arrêter un processus ou mettre un processus en arrière-plan


Certains programmes mettent beaucoup de temps à se terminer et ils ne font rien d'important entre-temps. La compilation de programmes est l'une de ces tâches, tout comme la compression d'un fichier volumineux. Il ne sert à rien d'arrêter d'utiliser l'ordinateur pendant que ces processus se terminent et consomment des ressources. Dans ces cas, il est préférable de les exécuter en arrière-plan, pour laisser l'ordinateur en mesure d'exécuter un autre programme.

Les processus peuvent être suspendus. Un processus suspendu est un processus qui n'est pas en cours d'exécution, mais qui est temporairement arrêté. Après avoir suspendu une tâche, vous pouvez demander à la tâche de continuer, au premier ou au second plan, selon vos besoins. La reprise d'une tâche suspendue ne modifie en rien l'état de la tâche puisqu'elle continuera à s'exécuter là où elle s'était arrêtée.

Étape 1
Pour interrompre un processus, la combinaison suivante est utilisée, lorsque vous appuyez sur cette combinaison, le processus meurt et toutes les ressources sont libérées.

Ctrl + C

Étape 2
Essayons d'envoyer une commande répétitive en arrière-plan. La commande yes est utilisée pour tester le script qui nécessite de nombreuses confirmations. Ce qu'elle fait est de répéter "et" avec tout ce qui est écrit devant elle à l'infini jusqu'à ce que le script soit arrêté ou que l'utilisateur l'arrête :

  • Si nous tapons "oui" dans le terminal et nous verrons une liste interminable de "et".
  • Si nous tapons oui bonjour dans le terminal et nous verrons une liste interminable de bonjour

Étape 3
Pour supprimer un fichier sans appuyer sur aucune touche lorsqu'il demande une confirmation, nous pouvons utiliser

 oui | rm -i * .txt 
Étape 4
Pour envoyer un processus en arrière-plan, nous l'appelons à partir de la ligne de commande suivi de & créons des périphériques nuls infinis
 oui> / dev / null & 
Étape 5
Cela nous montrera le numéro de tâche et le pid [1] 4106. Si nous utilisons maintenant la commande jobs, nous verrons
 [1] + Exécuter yes> / dev / null &
Étape 6
pour le mettre au premier plan, nous écrivons fg 1 et pour tuer le processus, tuez 4106 qui est le pid.
 Fg 1 Tuer 4106
Avec n'importe laquelle des options indiquées, il sera possible de gérer les processus d'arrière-plan sous Linux de manière beaucoup plus centralisée et ainsi permettre l'exécution des tâches requises même lorsque la session est fermée.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave