JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Gestion des informations système, des processus et des performances dans Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Français)
search filter icon
search icon

Informations document

Préface

1.  Gestion des informations système (tâches)

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

Nouveautés concernant la gestion des processus système

Pseudo-processus système

Gestion des processus système

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 à l'aide des commandes de processus (/proc)

Etablissement de la liste des processus

Affichage d'informations sur les processus

Contrôle des processus

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

Arrêt d'un processus (pkill)

Arrêt d'un processus (kill)

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

Gestion des informations sur les classes de processus

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

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éfinition de la priorité d'un 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

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

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

5.  Gestion de la console système, des périphériques terminaux et des services d'alimentation (tâches)

Index

Gestion des processus système

Cette section décrit les différentes tâches de gestion des processus système.

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

Tâche
Description
Voir
Etablissement de la liste des processus
Utilisez la commande ps pour dresser la liste de tous les processus d'un système.
Affichage des informations sur les processus
Utilisez la commande pgrep pour obtenir les ID des processus dont vous souhaitez afficher plus d'informations.
Contrôle des processus
Recherchez les processus à l'aide de la commande pgrep. Ensuite, utilisez la commande pcommand (/proc) appropriée pour contrôler le processus. Reportez-vous au Tableau 2-3 pour obtenir une description des commandes (/proc).
Arrêt d'un processus

Recherchez un processus, par nom de processus ou ID de processus. Vous pouvez utiliser la commande pkill ou kill pour mettre fin au processus.

Commandes de gestion des processus système

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

Tableau 2-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.

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 d'administration 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 2-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 2-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 à l'aide des 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 2-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 2, Gestion 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).

Etablissement de la liste des processus

Exemple 2-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 18:04:04 ?           0:15 sched
    root     5     0   0 18:04:03 ?           0:05 zpool-rpool
    root     1     0   0 18:04:05 ?           0:00 /sbin/init
    root     2     0   0 18:04:05 ?           0:00 pageout
    root     3     0   0 18:04:05 ?           2:52 fsflush
    root     6     0   0 18:04:05 ?           0:02 vmtasks
  daemon   739     1   0 19:03:58 ?           0:00 /usr/lib/nfs/nfs4cbd
    root     9     1   0 18:04:06 ?           0:14 /lib/svc/bin/svc.startd
    root    11     1   0 18:04:06 ?           0:45 /lib/svc/bin/svc.configd
  daemon   559     1   0 18:04:49 ?           0:00 /usr/sbin/rpcbind
  netcfg    47     1   0 18:04:19 ?           0:01 /lib/inet/netcfgd
   dladm    44     1   0 18:04:17 ?           0:00 /sbin/dlmgmtd
  netadm    51     1   0 18:04:22 ?           0:01 /lib/inet/ipmgmtd
    root   372   338   0 18:04:43 ?           0:00 /usr/lib/hal/hald-addon-cpufreq
    root    67     1   0 18:04:30 ?           0:02 /lib/inet/in.mpathd
    root   141     1   0 18:04:38 ?           0:00 /usr/lib/pfexecd
  netadm    89     1   0 18:04:31 ?           0:03 /lib/inet/nwamd
    root   602     1   0 18:04:50 ?           0:02 /usr/lib/inet/inetd start
    root   131     1   0 18:04:35 ?           0:01 /sbin/dhcpagent
  daemon   119     1   0 18:04:33 ?           0:00 /lib/crypto/kcfd
    root   333     1   0 18:04:41 ?           0:07 /usr/lib/hal/hald --daemon=yes
    root   370   338   0 18:04:43 ?           0:00 /usr/lib/hal/hald-addon-network-discovery
    root   159     1   0 18:04:39 ?           0:00 /usr/lib/sysevent/syseventd
    root   236     1   0 18:04:40 ?           0:00 /usr/lib/ldoms/drd
    root   535     1   0 18:04:46 ?           0:09 /usr/sbin/nscd
    root   305     1   0 18:04:40 ?           0:00 /usr/lib/zones/zonestatd
    root   326     1   0 18:04:41 ?           0:03 /usr/lib/devfsadm/devfsadmd
    root   314     1   0 18:04:40 ?           0:00 /usr/lib/dbus-daemon --system
    .
        .
        .

Affichage d'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 2-3 répertorie et décrit ces commandes.

    pid

    Identifie l'ID de processus.

Exemple 2-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 2-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

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).

Arrêt d'un processus (pkill)

  1. Pour mettre fin au processus d'un autre utilisateur, prenez le rôle root.
  2. Obtenez l'ID du processus à terminer.
    $ pgrep process

    process est le nom du processus à terminer.

    Par 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.

Arrêt d'un processus (kill)

  1. Pour mettre fin au processus d'un autre utilisateur, prenez le rôle root.
  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 manuelpreap(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 2-3 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 illustre 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 illustre 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