JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Guide d’administration système : administration avancée
search filter icon
search icon

Informations document

Préface

1.  Gestion des terminaux et modems (présentation)

2.  Configuration des terminaux et modems (tâches)

3.  Gestion des ports série avec la fonction d'accès aux services (tâches)

4.  Gestion des ressources système (présentation)

5.  Affichage et modification des informations système (tâches)

6.  Gestion de l'utilisation du disque (tâches)

7.  Gestion des quotas UFS (tâches)

8.  Tâches de planification du système (tâches)

9.  Gestion de la comptabilisation du système (tâches)

10.  Comptabilisation du système (référence)

11.  Gestion des performances du système (présentation)

12.  Gestion des processus système (tâches)

Gestion des processus système (liste des tâches)

Commandes de gestion des processus système

Utilisation de la commande ps

Utilisation du système de fichiers et des commandes /proc

Gestion des processus avec les commandes de processus (/proc)

Liste de processus

Affichage des informations sur les processus

Contrôle des processus

Arrêt d'un processus (pkill, kill)

Fin d'un processus (pkill)

Fin d'un processus (kill)

Débogage d'un processus (pargs, preap)

Gestion des informations sur les classes de processus (liste des tâches)

Gestion des informations sur les classes de processus

Modification de la priorité de planification des processus (priocntl)

Affichage des informations de base sur les classes de processus (priocntl)

Affichage de la priorité globale d'un processus

Désignation d'une priorité de processus (priocntl )

Modification des paramètres de planification d'un processus de partage du temps (priocntl)

Modification de la classe d'un processus ( priocntl)

Modification de la priorité d'un processus de partage du temps (nice)

Modification de la priorité d'un processus (nice)

Résolution des problèmes liés aux processus système

13.  Surveillance des performances du système (tâches)

14.  Résolution des problèmes logiciels (présentation)

15.  Gestion des messages système

16.  Gestion des fichiers noyau (tâches)

17.  Gestion des informations sur les pannes système (tâches)

18.  Résolution de problèmes logiciels divers (tâches)

19.  Résolution des problèmes d'accès aux fichiers (tâches)

20.  Résolution des incohérences d'un système de fichiers UFS (tâches)

21.  Résolution des problèmes du package logiciel (tâches)

Index

Commandes de gestion des processus système

Le tableau suivant décrit les commandes de gestion des processus système.

Tableau 12-1 Commandes de gestion des processus

Commande
Description
Page de manuel
ps, pgrep, prstat, pkill
Vérifie l'état des processus actifs sur un système et affiche des informations détaillées sur les processus.
pkill
Fonctionne exactement comme pgrep mais recherche ou signale les processus par nom ou un autre attribut et met fin au processus. Chaque processus concordant est signalé comme avec la commande kill, au lieu de voir son ID de processus imprimé.
pargs, preap
Facilite le débogage des processus.
dispadmin
Répertorie les stratégies de planification des processus par défaut.
priocntl
Affecte les processus à une classe de priorité et gère les priorités des processus.
nice
Change la priorité d'un processus de partage du temps.
psrset
Lie des groupes de traitement à un groupe de processeurs plutôt qu'à un seul processeur.

L'outil Processus de la console de gestion Solaris vous permet de gérer les processus avec une interface conviviale. Pour plus d'informations sur l'utilisation et le démarrage de la console de gestion Solaris, reportez-vous au Chapitre 2, Utilisation de la console de gestion Solaris (tâches) du Guide d’administration système : administration de base.

Utilisation de la commande ps

La commande ps vous permet de vérifier l'état des processus actifs sur un système et d'afficher des informations techniques sur les processus. Ces données sont utiles pour les tâches administratives telles que la détermination des priorités des processus.

En fonction des options utilisées, la commande ps indique les informations suivantes :

Le tableau suivant décrit certains champs indiqués par la commande ps. Les champs affichés dépendent de l'option choisie. Pour une description de toutes les options disponibles, reportez-vous à la page de manuel ps(1).

Tableau 12-2 Récapitulatif des champs des rapports ps

Champ
Description
UID
ID utilisateur effectif du propriétaire du processus.
PID
ID de processus.
PPID
ID du processus parent.
C
Utilisation du processeur à des fins de programmation. Ce champ n'est pas affiché lorsque l'option -c est utilisée.
CLS
Classe de programmation à laquelle appartient le processus, telle qu'en temps réel, système ou partage du temps. Ce champ est inclus uniquement avec l'option -c.
PRI
Priorité de programmation du thread de noyau. Un nombre plus élevé indique une priorité plus élevée.
NI
Numéro nice du processus, ce qui contribue à sa priorité de programmation. Rendre un processus plus agréable équivaut à abaisser sa priorité.
ADDR
Adresse de la structure proc.
SZ
Taille d'adresse virtuelle du processus.
WCHAN
Adresse d'un événement ou verrou pour lequel le processus est en veille.
STIME
Heure de début du processus en heures, minutes et secondes.
TTY
Terminal à partir duquel le processus, ou son parent, a été démarré. Un point d'interrogation indique qu'il n'y a aucun terminal de contrôle.
TIME
Quantité totale du temps CPU utilisé par le processus depuis son démarrage.
CMD
Commande qui a généré le processus.

Utilisation du système de fichiers et des commandes /proc

Vous pouvez afficher des informations détaillées sur les processus répertoriés dans le répertoire /proc à l'aide des commandes du processus. Le tableau suivant répertorie les commandes du processus /proc. Le répertoire /proc est également connu comme le système de fichiers du processus (PROCFS). Les images des processus actifs sont stockées ici en fonction du numéro d'identification du processus.

Tableau 12-3 Commandes du processus (/proc )

Commande du processus
Description
pcred
Affiche des informations d'identification du processus.
pfiles
Indique les informations fstat et fcntl relatives aux fichiers ouverts dans un processus.
pflags
Imprime les indicateurs de suivi /proc, les signaux en attente et en suspens, et d'autres informations d'état.
pldd
Répertorie les bibliothèques dynamiques liées à un processus.
pmap
Imprime la configuration de l'espace d'adresse de chaque processus.
psi
Répertorie les actions de signal et les gestionnaires de chaque processus.
prun
Démarre chaque processus.
pstack
Imprime un suivi de pile hex+symbolique pour chaque lwp dans chaque processus.
pstop
Arrête chaque processus.
ptime
Comptabilise le temps d'un processus en utilisant la comptabilisation des micro-états.
ptree
Affiche les arborescences de processus contenant le processus.
pwait
Affiche les informations d'état une fois qu'un processus se termine.
pwdx
Affiche le répertoire de travail actuel d'un processus.

Pour plus d'informations, reportez-vous à proc(1).

Les outils de processus sont similaires à certaines options de la commande ps, à l'exception du fait que la sortie fournie par ces commandes est plus détaillée.

En règle générale, les commandes du processus effectuent les opérations suivantes :

Gestion des processus avec les commandes de processus (/proc)

Vous pouvez afficher des informations techniques détaillées sur les processus ou contrôler les processus actifs à l'aide de certaines commandes de processus. Le Tableau 12-3 répertorie certaines commandes /proc.

Si un processus est piégé dans une boucle infinie ou si son exécution prend trop de temps, vous pouvez arrêter le processus. Pour plus d'informations sur l'arrêt des processus à l'aide de la commande kill ou pkill, reportez-vous au Chapitre 12Gestion des processus système (tâches).

Le système de fichiers /proc est une hiérarchie de répertoires qui contient des sous-répertoires supplémentaires pour les informations d'état et les fonctions de contrôle.

Le système de fichiers /proc fournit également une fonction xwatchpoint qui sert à reconfigurer les autorisations de lecture/écriture sur les différentes pages de l'espace d'adresse d'un processus. Cette fonction n'a pas de restrictions et est MT-safe.

Les outils de débogage ont été modifiés de façon à utiliser la fonction xwatchpoint de /proc, ce qui signifie que l'ensemble du processus xwatchpoint est plus rapide.

Les restrictions suivantes ont été supprimées lorsque vous définissez des xwatchpoints à l'aide de l'outil de débogage dbx :

Pour plus d'informations, reportez-vous aux pages de manuel proc(4) et mdb(1).

Liste de processus

Exemple 12-1 Liste des processus

L'exemple suivant illustre la sortie de la commande ps lorsque aucune option n'est utilisée.

$ ps
   PID TTY      TIME COMD
  1664 pts/4    0:06 csh
  2081 pts/4    0:00 ps

L'exemple suivant illustre la sortie de la commande ps - ef. Cette sortie indique que le premier processus exécuté lorsque le système s'initialise est sched (le swappeur) suivi du processus init, pageout, et ainsi de suite.

$ ps -ef
     UID   PID  PPID  C    STIME TTY      TIME CMD
    root     0     0  0   Dec 20 ?        0:17 sched
    root     1     0  0   Dec 20 ?        0:00 /etc/init -
    root     2     0  0   Dec 20 ?        0:00 pageout
    root     3     0  0   Dec 20 ?        4:20 fsflush
    root   374   367  0   Dec 20 ?        0:00 /usr/lib/saf/ttymon
    root   367     1  0   Dec 20 ?        0:00 /usr/lib/saf/sac -t 300
    root   126     1  0   Dec 20 ?        0:00 /usr/sbin/rpcbind
    root    54     1  0   Dec 20 ?        0:00 /usr/lib/sysevent/syseventd
    root    59     1  0   Dec 20 ?        0:00 /usr/lib/picl/picld
    root   178     1  0   Dec 20 ?        0:03 /usr/lib/autofs/automountd
    root   129     1  0   Dec 20 ?        0:00 /usr/sbin/keyserv
    root   213     1  0   Dec 20 ?        0:00 /usr/lib/lpsched
    root   154     1  0   Dec 20 ?        0:00 /usr/sbin/inetd -s
    root   139     1  0   Dec 20 ?        0:00 /usr/lib/netsvc/yp/ypbind ...
    root   191     1  0   Dec 20 ?        0:00 /usr/sbin/syslogd
    root   208     1  0   Dec 20 ?        0:02 /usr/sbin/nscd
    root   193     1  0   Dec 20 ?        0:00 /usr/sbin/cron
    root   174     1  0   Dec 20 ?        0:00 /usr/lib/nfs/lockd
  daemon   175     1  0   Dec 20 ?        0:00 /usr/lib/nfs/statd
    root   376     1  0   Dec 20 ?        0:00 /usr/lib/ssh/sshd
    root   226     1  0   Dec 20 ?        0:00 /usr/lib/power/powerd
    root   315     1  0   Dec 20 ?        0:00 /usr/lib/nfs/mountd
    root   237     1  0   Dec 20 ?        0:00 /usr/lib/utmpd
    .
    .
    .    

Affichage des informations sur les processus

  1. Obtenez l'ID du processus dont vous souhaitez afficher plus d'informations.
    # pgrep process

    process est le nom du processus dont vous souhaitez afficher plus d'informations.

    L'ID de processus s'affiche dans la première colonne de la sortie.

  2. Affichez les informations relatives aux processus dont vous avez besoin.
    # /usr/bin/pcommand pid
    pcommand

    Représente la commande (/proc) à exécuter. Le Tableau 12-3 répertorie et décrit ces commandes.

    pid

    Identifie l'ID de processus.

Exemple 12-2 Affichage des informations sur les processus

L'exemple suivant illustre le mode d'utilisation des commandes de processus pour afficher de plus amples informations sur un processus cron.

# pgrep cron 1
4780
# pwdx 4780 2
4780:   /var/spool/cron/atjobs
# ptree 4780 3
4780  /usr/sbin/cron
# pfiles 4780 4
4780:   /usr/sbin/cron
  Current rlimit: 256 file descriptors
   0: S_IFCHR mode:0666 dev:290,0 ino:6815752 uid:0 gid:3 rdev:13,2
      O_RDONLY|O_LARGEFILE
      /devices/pseudo/mm@0:null
   1: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771
      O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
      /var/cron/log
   2: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771
      O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
      /var/cron/log
   3: S_IFIFO mode:0600 dev:32,128 ino:42049 uid:0 gid:0 size:0
      O_RDWR|O_LARGEFILE
      /etc/cron.d/FIFO
   4: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0
      O_RDWR|O_NONBLOCK
   5: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0
      O_RDWR
  1. Obtient l'ID du processus cron.

  2. Affiche le répertoire de travail actuel du processus cron.

  3. Affiche l'arborescence des processus qui contient le processus cron.

  4. Affiche les informations fstat et fcntl.

Contrôle des processus

  1. Obtenez l'ID du processus à contrôler.
    # pgrep process

    process est le nom du processus à contrôler.

    L'ID de processus apparaît dans la première colonne de la sortie.

  2. Utilisez la commande de processus appropriée pour contrôler le processus.
    # /usr/bin/pcommand pid
    pcommand

    Représente la commande de processus (/proc) à exécuter. Le Tableau 12-3 répertorie et décrit ces commandes.

    pid

    Identifie l'ID de processus.

  3. Vérifiez l'état du processus.
    # ps -ef | grep pid

Exemple 12-3 Contrôle des processus

L'exemple suivant montre comment utiliser la commande de processus pour arrêter et redémarrer le processus dtpad.

# pgrep dtpad 1
2921
# pstop 29212 
# prun 2921 3
  1. Obtient l'ID du processus dtpad.

  2. Arrête le processus dtpad.

  3. Redémarre le processus dtpad.

Arrêt d'un processus (pkill, kill)

Il est parfois nécessaire d'arrêter (interrompre) un processus. Le processus peut se trouver dans une boucle infinie. Ou bien, vous pouvez avoir démarré un grand travail que vous souhaitez arrêter avant qu'il ne soit terminé. Vous pouvez interrompre un processus que vous possédez. Un superutilisateur peut interrompre tout processus du système à l'exception des processus dotés des ID 0, 1, 2, 3 et 4. L'interruption de ces processus risque de provoquer la panne du système.

Pour plus d'informations, reportez-vous aux pages de manuel pgrep(1), pkill(1) et kill(1).

Fin d'un processus (pkill)

  1. (Facultatif) Pour mettre fin au processus d'un autre utilisateur, connectez-vous en tant que superutilisateur (ou rôle équivalent).
  2. Obtenez l'ID du processus à terminer.
    $ pgrep process

    process est le nom du processus à terminer.

    Exemple :

    $ pgrep netscape
    587
    566

    L'ID de processus s'affiche dans la sortie.


    Remarque - Pour obtenir plus d'informations sur un processus Sun Ray, utilisez les commandes suivantes :

    # ps -fu user

    Cette commande répertorie tous les processus utilisateur.

    # ps -fu user | grep process

    Cette commande recherche un processus spécifique pour un utilisateur.


  3. Mettez fin au processus.
    $ pkill [signal] process
    signal

    Lorsque aucun signal n'est inclus dans la syntaxe de ligne de commande pkill, le signal utilisé par défaut est –15 (SIGKILL). Utiliser le signal –9 (SIGTERM) avec la commande pkill garantit la fin du processus dans les plus brefs délais. Cependant, le signal –9 ne doit pas être utilisé pour arrêter certains processus, par exemple un processus de base de données ou de serveur LDAP. Cela pourrait entraîner la perte des données.

    process

    Représente le nom du processus à arrêter.


    Astuce - Lorsque vous utilisez la commande pkill pour interrompre un processus, utilisez d'abord la commande proprement dite, sans y inclure une option de signal. Attendez quelques minutes pour voir si le processus se termine avant d'utiliser la commande pkill avec le signal -9.


  4. Vérifiez que le processus a été interrompu.
    $ pgrep process

    Le processus interrompu ne doit plus figurer dans la sortie de la commande pgrep.

Fin d'un processus (kill)

  1. (Facultatif) Pour mettre fin au processus d'un autre utilisateur, connectez-vous en tant que superutilisateur (ou rôle équivalent).
  2. Obtenez l'ID du processus à arrêter.
    $ ps -fu user

    user est l'utilisateur dont vous souhaitez afficher les processus.

    L'ID de processus s'affiche dans la première colonne de la sortie.

  3. Mettez fin au processus.
    $ kill [signal-number] pid
    signal

    Lorsque aucun signal n'est inclus dans la syntaxe de ligne de commande kill, le signal utilisé par défaut est –15 (SIGKILL). Utiliser le signal –9 (SIGTERM) avec la commande kill garantit la fin du processus dans les plus brefs délais. Cependant, le signal –9 ne doit pas être utilisé pour arrêter certains processus, par exemple un processus de base de données ou de serveur LDAP. Cela pourrait entraîner la perte des données.

    pid

    Représente l'ID du processus à arrêter.


    Astuce - Lorsque vous utilisez la commande kill pour arrêter un processus, utilisez d'abord la commande proprement dite, sans y inclure une option de signal. Attendez quelques minutes pour voir si le processus se termine avant d'utiliser la commande kill avec le signal -9.


  4. Vérifiez que le processus a été interrompu.
    $ pgrep pid

    Le processus interrompu ne doit plus figurer dans la sortie de la commande pgrep.

Débogage d'un processus (pargs, preap)

Les commandes pargs et preap améliorent le débogage des processus. La commande pargs imprime les arguments et les variables d'environnement associées à un processus en direct ou à un fichier noyau. La commande preap supprime les processus défunts (zombies). Un processus zombie n'a pas encore vu son état de sortie réclamé par son parent. Ces processus sont généralement inoffensifs mais peuvent consommer des ressources système s'ils sont nombreux. Vous pouvez utiliser les commandes pargs et preap pour examiner les processus dont vous souhaitez examiner les privilèges. En tant que superutilisateur, vous pouvez examiner les processus.

Pour plus d'informations sur l'utilisation de la commande preap, reportez-vous à la page de manuel preap(1). Pour plus d'informations sur l'utilisation de la commande pargs, reportez-vous à la page de manuel pargs(1). Reportez-vous également à la page de manuel proc(1).

Exemple 12-4 Débogage d'un processus (pargs)

La commande pargs résout un problème de longue date lié à l'impossibilité d'afficher avec la commande ps tous les arguments transmis à un processus. L'exemple suivant montre comment utiliser la commande pargs avec la commande pgrep pour afficher les arguments transmis à un processus.

# pargs `pgrep ttymon`
579:    /usr/lib/saf/ttymon -g -h -p system-name console login:  
-T sun -d /dev/console -l 
argv[0]: /usr/lib/saf/ttymon
argv[1]: -g
argv[2]: -h
argv[3]: -p
argv[4]: system-name console login: 
argv[5]: -T
argv[6]: sun
argv[7]: -d
argv[8]: /dev/console
argv[9]: -l
argv[10]: console
argv[11]: -m
argv[12]: ldterm,ttcompat
548:    /usr/lib/saf/ttymon
argv[0]: /usr/lib/saf/ttymon

L'exemple suivant montre comment utiliser la commande pargs - e pour afficher les variables d'environnement associées à un processus.

$ pargs -e 6763
6763: tcsh
envp[0]: DISPLAY=:0.0