Ignorer les liens de navigation | |
Quitter l'aperu | |
Guide d’administration système : administration avancée Oracle Solaris 10 1/13 Information Library (Français) |
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)
Nouveautés concernant la gestion des processus système
Gestion des processus système (liste des tâches)
Commandes de gestion des processus système
Utilisation du système de fichiers et des commandes /proc
Gestion des processus avec les commandes de processus (/proc)
Etablissement de la liste des processus
Affichage d'informations sur les processus
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é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
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)
Le tableau suivant décrit les commandes de gestion des processus système.
Tableau 12-1 Commandes de gestion des processus
|
L'outil Processus de Solaris Management Console vous permet de gérer les processus avec une interface conviviale. Pour plus d'informations sur l'utilisation et le démarrage de Solaris Management Console, reportez-vous au Chapitre 2, Utilisation de la console de gestion Solaris (tâches) du manuel Guide d’administration système : administration de base.
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 :
Etat actuel du processus
ID de processus
ID du processus parent
Identifiant utilisateur
Classe de programmation
Priorité
Adresse du processus
Mémoire utilisée
Temps CPU utilisé
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
|
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 )
|
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 :
Affichage d'informations supplémentaires sur les processus, comme les répertoires fstat et fcntl, de travail et les arborescences des processus parents et enfants.
Contrôlez les processus en autorisant les utilisateurs à les arrêter ou à les reprendre.
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 12, 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'adressage 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 :
Définition des xwatchpoints sur des variables locales de la pile en raison des fenêtres de registre du système SPARC.
Définition des xwatchpoints sur les processus multithread.
Pour plus d'informations, reportez-vous aux pages de manuel proc(4) et mdb(1).
$ ps [-efc]
Affiche uniquement les processus associés à votre session de connexion.
Affiche des informations complètes sur tous les processus en cours d'exécution sur le système.
Affiche les informations sur le planificateur 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 . . .
# pgrep process
où 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.
# /usr/bin/pcommand pid
Représente la commande (/proc) à exécuter. Le Tableau 12-3 répertorie et décrit ces commandes.
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
Obtient l'ID du processus cron.
Affiche le répertoire de travail actuel du processus cron.
Affiche l'arborescence des processus qui contient le processus cron.
Affiche les informations fstat et fcntl.
# pgrep process
où process est le nom du processus à contrôler.
L'ID de processus apparaît dans la première colonne de la sortie.
# /usr/bin/pcommand pid
Représente la commande de processus (/proc) à exécuter. Le Tableau 12-3 répertorie et décrit ces commandes.
Identifie l'ID de 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
Obtient l'ID du processus dtpad.
Arrête le processus dtpad.
Redémarre le processus dtpad.
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).
$ pgrep process
où 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.
$ pkill [signal] process
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.
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.
$ pgrep process
Le processus interrompu ne doit plus figurer dans la sortie de la commande pgrep.
$ ps -fu user
où user est l'utilisateur dont vous souhaitez afficher les processus.
L'ID de processus s'affiche dans la première colonne de la sortie.
$ kill [signal-number] pid
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.
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.
$ pgrep pid
Le processus interrompu ne doit plus figurer dans la sortie de la commande pgrep.
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 dump 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 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