processes unix process control
Gestion des processus sous Unix:
Sous Unix, toutes les instructions en dehors du noyau sont exécutées dans le contexte d'un processus.
Un processus est une séquence d'instructions et chaque processus est associé à un bloc de données contrôlées. Les processus peuvent être manipulés de la même manière que les fichiers peuvent être manipulés.
Par exemple, comme «ls» peut être utilisé pour voir la liste des fichiers, «ps» peut être utilisé pour voir la liste des processus.
Vidéo Unix n ° 23:
Dans ce didacticiel, nous couvrirons les informations relatives aux processus stockées et décrirons également certaines commandes utilisées pour gérer les processus. Nous fournirons également une brève description de la manière dont les scripts de commande peuvent être débogués.
Ce que vous apprendrez:
- Informations sur le processus Unix
- Commandes de contrôle de processus
- Débogage Unix
- lecture recommandée
Informations sur le processus Unix
La table de processus contient des informations sur tous les processus en cours d'exécution. L'objectif principal de ce tableau est de gérer efficacement tous les processus en cours d'exécution.
jointure intérieure jointure gauche jointure droite
Remarque: En tant que système d'exploitation multitâche et multi-utilisateurs, Unix aura de nombreux processus en cours d'exécution en même temps.
Le tableau contient des informations telles que:
- ID de processus
- ID de processus parent
- État des processus
- l'utilisation du processeur
Les processus sous Unix passent par différents états selon les circonstances. Les changements d'état peuvent être déclenchés par le fait qu'un processus doit attendre la fin d'une opération de lecture ou d'écriture, ou lorsqu'un autre processus plus urgent doit avoir une chance de s'exécuter.
Commandes de contrôle de processus
Il existe un certain nombre de commandes disponibles pour examiner et manipuler les processus. La commande «ps» peut être utilisée pour afficher les informations sur l’état du processus.
Commander | ps - donne des informations sur tous les processus en cours d'exécution. |
---|---|
Syntaxe commune | $ ps (OPTIONS) |
Exemple 1 | $ ps Donne des informations sur le processus, y compris le PID, le nom du terminal, l'heure de création et le nom des processus. |
Comme indiqué dans un didacticiel précédent, les processus peuvent être classés en premier plan, en arrière-plan ou en démon. Lorsqu'une commande est exécutée à partir du terminal, elle s'exécute normalement au premier plan. Pour exécuter un processus en arrière-plan, le bouton «&» à la fin de la commande peut être utilisé.
Exemple:
$ grep “how” file1 > file2 &
Cette commande recherchera les lignes contenant le motif «comment» et stockera la sortie dans fichier2. Si file1 est raisonnablement volumineux, nous souhaitons peut-être procéder à d'autres actions et exécuter cette commande en arrière-plan. Avec le «&» à la fin, cette commande s’exécutera en tant que processus en arrière-plan.
Il est possible de suspendre un processus de premier plan en utilisant la commande «^ Z». Cette commande déplace le processus de premier plan actuel vers un état suspendu en arrière-plan. À partir de là, le processus peut être poussé pour reprendre en arrière-plan en utilisant la commande «bg», ou il peut être ramené au premier plan en utilisant la commande «fg».
Chaque processus est également associé à une priorité. Ceci est utilisé pour garantir que le système d'exploitation est capable d'allouer équitablement du temps à diverses tâches de traitement. La commande 'nice' peut être utilisée pour réduire la priorité d'un processus et ainsi être 'gentil' avec les autres processus, c'est-à-dire
$ sympa
Cette ligne exécutera la commande spécifiée avec une priorité inférieure - par défaut, la priorité sera réduite de 10. La commande prend également un paramètre qui peut être utilisé pour utiliser un niveau différent de «gentillesse».
Exemple:
$ nice -20 ls
Cette commande exécute «ls» avec la priorité réduite de 20.
Il est également possible d’augmenter la priorité avec une «gentillesse» négative. Cependant, cela nécessite l'autorisation du superutilisateur.
Lorsqu'un terminal ou une session de connexion est fermé, il envoie le signal SIGHUP aux processus enfants. Par défaut, ce signal entraînera l'arrêt des processus enfants. La commande «nohup» peut être utilisée pour permettre aux commandes de continuer à s’exécuter même lorsque la session de connexion est terminée.
Exemple:
$ nohup soft file1 > file2
Avec cette commande, le tri de fichier1 et l'enregistrement dans le processus de fichier2 se poursuivront même si nous nous sommes déconnectés du système.
La commande «kill» peut être utilisée pour mettre fin à l’un des processus en fonction des autorisations.
Exemple:
$ kill (options)
Cette commande mettra fin à un processus avec l'ID de processus. Le PID d’un processus peut être obtenu à l’aide de la commande «ps».
Cette commande «at» est utilisée pour exécuter des commandes à une date et une heure particulières dans le futur.
Exemple:
$ at 8pm sort file1>file2
Débogage Unix
Unix fournit un certain nombre de mécanismes pour vous aider à trouver des bogues dans vos scripts de commande. Ces mécanismes peuvent être utilisés pour afficher une trace de ce qui est exécuté, c'est-à-dire la séquence dans laquelle les commandes sont exécutées. La trace peut être utilisée pour comprendre et vérifier la logique et le flux de contrôle du script.
=> définir -v
mode verbeux: La définition de cette option avant d'exécuter une commande garantira que la commande qui sera exécutée sera imprimée sur stdout avant d'être réellement exécutée.
=> définir -x
mode de trace d'exécution: La définition de cette option affichera chaque commande telle qu'elle est exécutée avec ses arguments.
=> définir -n
mode sans exécution: La définition de cette option affiche toutes les erreurs sans exécuter aucune commande.
Consultez notre prochain tutoriel pour en savoir plus sur Scripting Shell avancé.
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Commandes de contrôle des processus Unix comme Ps et Top (partie C)
- Commandes Unix: commandes Unix de base et avancées avec exemples
- Commandes de traitement de texte Unix: filtres Unix avec exemples
- Tutoriel Unix Pipes: Pipes dans la programmation Unix
- Plus de filtres Unix et de commandes Awk, Sed dans le traitement de texte
- Arguments de ligne de commande dans un script shell Unix avec exemple
- Tutoriel UNIX pour les débutants (plus de 20 vidéos de formation Unix approfondies)
- Comment comparer deux fichiers sous Unix: commandes de comparaison de fichiers