|
−P
|
|
Cette option interdit la conversion de
numéros de port en noms de port pour les
fichiers réseau. Désactiver la
conversion peut accélérer un peu
lsof. Elle est également utile quand la
recherche des noms d’hôtes ne fonctionne
pas correctement.
|
[t] Cette option place lsof dans le mode de
répétition. lsof liste
alors les fichiers ouverts
sélectionnés par d’autres
options, attend t secondes (quinze par
défaut), ensuite
répète le listage, attend et liste
répétitivement
jusqu’Ã ce qu’il soit
arrêté par une condition
définie par le préfixe de
l’option. |
|
Si le préfixe est un ‘−’,
les mode de répétition est
éternel. Lsof doit être
terminé par un signal d’interruption ou
d’arrêt.
Si le préfixe est ‘+’, le mode
de répétition
s’arrêtera au premier cycle
où aucun fichier ouvert n’est
listé − et bien sûr quand
lsof est terminé par un signal
d’interruption ou d’arrêt. Lorsque
le mode de répétition
s’arrête parce qu’aucun fichier
n’est listé, le code de sortie du
processus sera zéro s’il y a eu le
moindre fichier ouvert rapporté, et un si aucun
n’a été
listé.
Lsof marque la fin de chaque listing : si la
sortie de champs est en cours (l’option
−F a été
spécifiée), les marqueur est
‘m’ ; sinon, le marqueur est «
======== ». Le marqueur est suivi par un
caractère NL.
Le mode de répétition
réduit la surcharge au démarrage
de lsof , de sorte qu’il est plus efficace
d’utiliser ce mode que d’appeler
répétitivement lsof
à partir d’un script shell, par exemple.
Pour utiliser efficacement le mode de
répétition, accompagnez
+|−r par la spécification
d’autres options de sélection lsof
, afin que le nombre d’accès à la
mémoire du noyau par lsof reste Ã
un minimum. Les options qui filtrent au niveau processus
− p.ex. −c, −g,
−p, −u − sont les
sélecteurs les plus efficaces.
Le mode de répétition est utile
lorsqu’il est couplé avec la sortie en
champs (voyez la description de l’option
−F ) et un script awk ou Perl de
surveillance.
|
|
−R
|
|
Cette option indique à lsof de lister les
numéros d’identification des processus
parents (Parent Process IDentification number, PPID) dans la
colonne PPID.
|
|
−s
|
|
Cette option indique à lsof de toujours
afficher la taille du fichier. Cela provoque le remplacement
du titre de la colonne de sortie SIZE/OFF par SIZE. Si le
fichier ne possède pas de taille, rien
n’est affiché.
|
|
Les options −o (sans nombre de chiffres
décimaux à la suite) et −s
sont mutuellement exclusives ; elles ne peuvent
être spécifiées en
même temps. Quand aucune d’entre elles
n’est spécifiée, lsof
affiche la valeur − taille ou position −
appropriée et disponible pour le type du
fichier.
Puisque certains types de fichiers ne
possèdent pas réellement de taille
− sockets, FIFOs, tubes, etc. − lsof affiche en
lieu et place le total contenu dans les
mémoires tampons du noyaux qui leur sont
associées, si c’est possible.
|
|
−S [t]
|
|
Cette option spécifie une valeur de
temporisation optionnelle pour les fonctions du noyau
− lstat(2), readlink(2), et
stat(2) − qui pourraient sans cela conduire
à un interblocage. Le minimum pour t est deux
; le défaut, quinze ; quand aucune valeur
n’est spécifiée, le
défaut est utilisé.
|
|
Voyez la section BLOCAGES ET TEMPORISATIONS pour
plus d’informations.
|
|
−T [t]
|
|
Cette option contrôle le rapport
d’information TCP/TPI, également
rapportée par netstat(1), à la
suite des adresses réseau. Dans une sortie
normale, l’information apparaît entre
parenthèses, chaque
élément à l’exception
de l’état est identifié par
un mot-clé, suivi par un « =
», et séparé des
autres par un simple espace :
|
|
<nom état TCP ou TPI>
|
|
|
QR=<longueur queue lecture>
|
|
|
QS=<longueur queue émission>
|
|
|
WR=<longueur fenêtre de lecture> (pas
tous
|
|
|
les dialectes)
|
|
|
WW=<longueur fenêtre
d’écriture> (pas tous
|
|
|
les dialectes)
|
|
|
Quand le mode de sortie en champs a lieu (Voyez SORTIE
POUR D’AUTRES PROGRAMMES , chaque
élément apparaît sous
la forme d’un champ possédant un
caractère « T » en
tête, et le nom de l’état
TCP ou TPI possède le préfixe
« ST= ».
−T sans caractères de
clé à la suite, désactive
le rapport d’information TCP/TPI.
−T suivi de caractères
sélectionne le rapport d’information
TCP/TPI spécifique :
|
|
q
|
sélectionne un rapport sur la longueur
|
|
|
|
de la queue.
|
|
|
s
|
sélectionne un rapport sur
l’état.
|
|
|
w
|
sélectionne un rapport sur la taille de
|
|
|
|
fenêtre (pas sur tous les dialectes).
|
|
|
L’état est rapporté par
défaut. La sortie d’aide de
−h ou −? pour l’option
−T indiquera si le rapport sur la taille de
fenêtre peut être requis.
Quand −T est utilisé pour
sélectionner de l’information −
c.−Ã −d. s’il est suivi d’un
ou de plusieurs caractères de
sélection − l’affichage de
l’état est
désactivé par défaut,
et doit être explicitement
resélectionné en faisant partie
des caractères suivant −T. (Le
défaut est équivalent Ã
-Ts en termes d’effets.) Par exemple, si les
longueurs de queue et l’état sont
désirés, utilisez
−Tqs.
|
|
−t
|
|
Cette option spécifie que lsof
devrait produire une sortie laconique avec uniquement les
identifiants de processus et aucun en-tête
− afin p.ex. que la sortie puisse être
envoyée via un tube à kill(1).
Cette option sélectionne l’option
−w.
|
|
−u s
|
|
Cette option sélectionne le listing des
fichiers pour les utilisateurs dont le nom ou ID
d’utilisateur est présent dans
l’ensemble découpé par des
virgules s − p.ex. « abe
», ou « 548,root ».
(Il ne devrait pas y avoir d’espace dans
l’ensemble.)
|
|
De multiples noms de connexion et numéros
d’ID utilisateur sont associés dans un
seul ensemble par un OU binaire avant de participer Ã
une sélection par ET binaire des options.
Si un nom de connexion ou ID utilisateur est
précédé par un
« ^ », il devient une
négation − c.−à −d.
que les fichiers ou processus appartenant au nom ou Ã
l’ID ne seront jamais listés. Un nom de
connexion ou un ID utilisateur nié n’est
associé ni par un ET ni par un OU binaire avec
d’autres sélections ; il est
appliqué avant toutes les autres
sélections et exclut formellement le listage
des fichiers du processus. Par exemple, pour ordonner
à lsof d’exclure le listage des fichiers
appartenant aux processus de root, spécifiez
« −u^root » ou
« −u^0 ».
|
|
−U
|
|
Cette option sélectionne le listage des
fichiers de sockets de domaine UNIX.
|
|
−v
|
|
Cette option sélectionne le listage
d’une information de version sur lsof incluant
: numéro de révision ; date de
construction ; identité du constructeur et
endroit de construction ; nom du compilateur
utilisé ; numéro de version du
compilateur si disponible ; options du compilateur et du
chargeur utilisés pour construire le binaire
lsof ; et information sur le système,
typiquement la sortie de l’option −a de
uname.
|
|
−V
|
|
Cette option ordonne à lsof
d’indiquer les éléments
qu’on lui a demandé de lister et
qu’il n’a pas trouvés − noms
de commandes, noms de fichiers, adresses ou fichiers
Internet, noms de connexion, fichiers NFS, PIDs, PGIDs et
UIDs.
|
|
Quand d’autres options sont associées
par un ET binaire à des options de recherche,
lsof peut ne pas rapporter qu’il n’a pas
réussi à trouver un
élément de recherche quand une
option associée avec un ET empêche
le listing du fichier ouvert contenant
l’élément de recherche
localisé. Par exemple, « lsof -C
-iTCP@foobar -a -d 999 » peut ne pas rapporter
un échec de localisation de fichiers ouverts
sur « TCP@foobar », et peut
n’en lister aucun, si aucun n’a un
numéro de descripteur de fichier de 999.
|
|
+|−w
|
|
Autorise (+) ou désactive (-)
la suppression des messages d’avertissement.
|
|
Le constructeur de lsof peut choisir de
désactiver ou d’activer les messages
d’avertissements par défaut. Le statut
des messages d’avertissement par défaut
est indiqué dans la sortie de l’option
−h ou −? . Désactiver
les messages d’avertissement quand ils le sont
déjà ou les activer quand ils sont
déjà activés est
acceptable.
L’option −t sélectionne
l’option −w.
|
|
−X
|
|
C’est une option spécifique au
dialecte.
|
|
|
ATTENTION : utiliser cette option sur un
système AIX chargé peut provoquer
une panne tellement importante d’un processus
d’application qu’il ne peut ni être
tué, ni être
arrêté. Je n’ai jamais vu
cela arriver cela ni entendu des échos Ã
ce sujet, mais je pense que la possibilité
existe.
Cette option −X IBM AIX RISC/System 6000
indique à lsof d’utiliser la fonction du
noyau readx(). (Par défaut, l’utilisation
de readx() est désactivée.) Sur
AIX 5L et supérieur, lsof peut
nécessiter une permission setuid−root
pour effectuer les actions requises par cette option.
On peut spécifier lors de la construction de
lsof que l’option −X doit
être limitée aux processus dont
l’UID réel est root. Si cela a
été fait, l’option
−X n’apparaîtra pas dans la
sortie d’aide −h ou −?
à moins que l’UID réel du
processus lsof ne soit root. La distribution
lsof par défaut permet Ã
n’importe quel UID de spécifier
−X, et elle apparaîtra par
conséquent par défaut dans la
sortie d’aide.
Quand l’utilisation du readx() AIX est interdite,
lsof peut ne pas être capable de
rapporter de l’information sur toutes les
références de fichiers texte et de
chargeur, mais il peut également
éviter d’exacerber une erreur noyau de
recherche de répertoire du noyau AIX, connue
sous le nom de bogue d’ID de segment
périmé (Stale Segment ID Bug).
Quand readx() est activé, lsof
essaiera de rapporter de l’information sur le fichier
texte exécuté par chaque
processus, et sur les librairies partagées
qu’il utilise.
La fonction readx(), utilisée par
lsof ou par tout autre programme, pour
accéder à certaines sections de la
mémoire virtuelle du noyau, peut
déclencher le bogue d’ID de segment
périmé. Elle peut faire croire
erronément à la fonction dir_search() du
noyau qu’une partie d’une copie en
mémoire d’un répertoire
système de fichiers
été
zéro-ifiée. Un autre processus
applicatif, distinct de lsof, demandant au noyau de
parcourir le répertoire − p.ex.en
utilisant open(2) − peut faire boucler
dir_search() éternellement, bloquant ainsi le
processus applicatif.
Consultez la FAQ de lsof (La section FAQ
vous donne son emplacement.) et le fichier 00README
de la distribution de lsof pour une description plus
complète du bogue d’ID de segment
périmé, de son APAR, et des
méthodes pour définir
l’utilisation de readx() lors de la compilation de
lsof.
|
|
--
|
|
L’option constituée de deux signes
moins est un marqueur qui signale la fin des options. Elle
peut être utilisée, par exemple,
quand le premier nom de fichier commence par un signe moins.
Elle peut également être
employée quand l’absence de valeur pour
la dernière option doit être
annoncée par la présence
d’un signe moins dans l’option suivante et avant
le début des noms de fichiers.
|
|
noms
|
|
Ce sont les noms de chemins des fichiers
spécifiques à lister. Les liens
symboliques sont résolus avant utilisation. Le
premier nom peut être
séparé des options
précédentes avec l’option
« -- ».
|
|
Si un nom est le répertoire de
montage d’un système de fichiers, ou le
périphérique du
système de fichiers, lsof listera tous
les fichiers ouverts sur le système de fichiers.
Pour être considéré
représenter un système de fichiers,
le nom doit correspondre à un
répertoire mount−é de la
sortie de mount(8) , ou correspondre au nom
d’un périphérique en mode
bloc associé à un nom de
répertoire monté. L’option
+|−f peut être
utilisée pour forcer lsof pour
considérer qu’un nom est un
identificateur de système de fichiers
(+f) ou un simple fichier (−f).
Si nom est un chemin menant à un
répertoire qui n’est pas le nom du
répertoire de montage d’un
système de fichiers, il est traité
comme le serait un fichier normal − c.−Ã
−d. que son listage est restreint aux processus qui
l’ont ouvert en tant que fichier ou en tant que
répertoire spécifique à un
processus, comme le répertoire racine ou le
répertoire de travail actuel. Pour
requérir que lsof recherche des fichiers
ouverts à l’intérieur d’un
nom de répertoire, utilisez les options
+d s et +D D.
Si un nom est le nom de base d’une famille
de fichiers multiplexés − p.ex. les
fichiers /dev/pt[cs] − AIX, lsof listera
tous les fichiers multiplexés
associés qui sont ouverts sur le
périphérique − p.ex.
/dev/pt[cs]/1, /dev/pt[cs]/2, etc.
Si un nom est un nom de socket de domaine UNIX,
lsof le recherchera seulement grâce aux
caractères du nom − exactement comme il
est spécifié et
enregistré dans la structure de socket du
noyau. Spécifier un chemin relatif −
p.ex. ./fichier − au lieu du chemin absolu du
fichier − p.ex. /tmp/fichier − ne
fonctionnera pas car lsof doit faire correspondre les
caractères que vous spécifiez avec
ceux qu’il trouve dans les structures des sockets de
domaine UNIX du noyau.
Si un nom n’est pas d’un des types
repris plus haut, lsof listera les fichiers ouverts
dont les périphérique et i-noeud
correspondent à celui du nom de chemin
spécifié.
Si vous avez également
spécifié l’option
−b, les seuls noms que vous pouvez
spécifier sans risque sont les
systèmes de fichiers pour lesquels votre table
de montage fournit des numéros de
périphériques alternatifs. Voyez
les sections ÃVITER LES BLOCAGES DU NOYAU et
NUMÃROS DE PÃRIPHÃRIQUES
ALTERNATIFS pour plus d’informations.
De multiples noms de fichiers sont associées
dans un seul ensemble par un OU binaire avant de participer
à une sélection par ET binaire des
options.
|
AFS
|
Lsof supporte la reconnaissance des fichiers AFS
pour les dialectes (et versions AFS) suivants :
|
|
AIX 4.1.4 (AFS 3.4a)
|
|
|
HP−UX 9.0.5 (AFS 3.4a)
|
|
|
Linux 1.2.13 (AFS 3.3)
|
|
|
Solaris 2.[56] (AFS 3.4a)
|
|
|
Il peut reconnaître les fichiers AFS sur
d’autres versions de ces dialectes, mais cela
n’a pas été
testé. En fonction de la façon
dont AFS est implémenté,
lsof peut reconnaître les fichiers AFS
dans d’autres dialectes, ou avoir des
difficultés à reconnaître
les fichiers AFS dans les dialectes
supportés.
Lsof peut avoir du mal à identifier tous
les aspects des fichiers AFS dans les dialectes
supportés quand le support noyau de l’AFS
est implémenté via des modules
dynamiques dont les adresses n’apparaissent pas dans
la liste des noms de variables du noyau. Dans ce cas,
lsof pourrait être dans
l’obligation de deviner l’identité
des fichiers AFS, et ne pas être capable
d’obtenir depuis le noyau l’information de
volume qui est nécessaire pour le calcul des
numéros de noeuds de volumes AFS. Quand
lsof ne peut calculer les numéros de
noeuds de volume, il rapporte un blanc dans la colonne NODE
(noeud).
L’option −A A est disponible
sur certaines implémentations de dialectes de
lsof pour spécifier le fichier de liste
de noms où l’on peut trouver les adresses
noyau des modules dynamiques. Quand cette option est
disponible, elle sera listée dans la sortie
d’aide de lsof ,
présentée en réponse
au −h ou au −?
Voyez la FAQ lsof (La section FAQ vous
donne son emplacement) pour obtenir plus
d’informations sur les modules dynamiques, leurs
symboles, et la façon dont ils affectent les
options de lsof.
Puisque les recherches de chemin AFS ne semblent pas
contribuer aux opérations du cache de noms du
noyau, lsof ne peut identifier les composants du nom
de chemin pour les fichiers AFS.
|
SÃCURITÃ
|
Lsof dispose de trois fonctionnalités
qui peuvent générer des
problèmes de sécurité.
Primo, son mode de compilation par défaut
permet à n’importe qui de l’utiliser pour
lister tous les fichiers ouverts. Secundo, il
crée par défaut un fichier de
cache de périphérique accessible
à la fois en lecture et en écriture pour
un utilisateur dans le répertoire personnel de
l’UID réel qui exécute
lsof. (Les fonctionnalités de listage de
tous les fichiers ouverts et de cache des
périphériques peuvent
être désactivées lors
de la compilation de lsof ). Tertio, ses options
−k et −m nomment des listes de
noms du noyau ou des fichiers mémoire
alternatifs.
Le restriction sur le listage des fichiers ouverts est
contrôlée par l’option de
compilation HASSECURITY. Quand HASSECURITY est
définie, lsof ne permettra qu’au
seul root de lister tous les fichiers ouverts.
L’utilisateur non root ne peut lister que les fichiers
ouverts par les processus possédant le
même numéro d’IDentification
d’utilisateur que celui du numéro
d’ID d’utilisateur du processus lsof
(celui avec lequel l’utilisateur s’est
connecté). Quand HASSECURITY n’est pas
définie, n’importe qui peut lister tous
les fichiers ouverts.
La sortie d’aide,
présentée en réponse
à l’option −h ou −? ,
fournit l’état de définition
de la macro HASSECURITY.
Voyez la section Security du fichier
0README de la distribution de lsof pour savoir
comment construire lsof en activant l’option
HASSECURITY.
La création et l’utilisation
d’un fichier de cache de
périphériques accessible Ã
la fois en lecture et en écriture par un
utilisateur sont contrôlées par
l’option de compilation HASDCACHE. Voyez la section
FICHIER DE CACHE DE PÃRIPHÃRIQUE et
suivantes pour connaître les
détails de la formation du chemin. Pour des
considerations de sécurité, il est
important de noter que dans la distribution par
défaut de lsof , si l’ID
d’utilisateur réel sous lequel
lsof est exécuté est root,
le fichier de cache de
périphérique sera
écrit dans le répertoire personnel
de root − c.−Ã −d. / ou
/root. Quand HASDCACHE n’est pas
définie, lsof n’essaie ni
d’écrire ni de lire un fichier de cache
de périphérique.
Quand HASDCACHE est définie, la sortie
d’aide de lsof ,
présentée en réponse
aux options −h, −D?, ou
−? , fournira de l’information sur le
traitement des fichiers de cache de
périphérique. Quand HASDCACHE
n’est pas définie, la sortie de
−h ou de −? ne
présentera pas la description de l’option
−D.
Avant que vous ne décidiez de
désactiver la fonctionnalité des
fichiers de cache de périphérique
− l’autoriser améliore la
performance de lsof en réduisant la
surcharge au démarrage induite par
l’examen de tous les noeuds de /dev (ou
/devices) − lisez la discussion à ce
sujet dans le fichier 00DCACHE de la distribution de
lsof et la FAQ lsof (La section FAQ
vous donne son emplacement.)
EN CAS DE DOUTE, VOUS POUVEZ DÃSACTIVER
TEMPORAIREMENT L’UTILISATION DU FICHIER DE CACHE DE
PÃRIPHÃRIQUES AVEC L’OPTION
−Di.
Quand l’utilisateur de lsof
déclare des listes de noms du noyau ou des
fichiers mémoire alternatifs avec les options
−k et −m , lsof
vérifie que l’utilisateur Ã
l’autorisation de les lire avec access(2).
C’est destiné Ã
éviter les pouvoirs spéciaux que
les modes de lsof pourraient lui
conférer en lui laissant lire des fichiers
normalement non accessibles d’après les
droits de l’ID de l’utilisateur
réel.
|
SORTIE
|
Cette section décrit l’information que
liste lsof pour chaque fichier ouvert. Voyez la
section SORTIE POUR D’AUTRES PROGRAMMES pour
plus d’informations sur la sortie pouvant
être traitée par un autre
programme.
Lsof ne produit que des caractères
ASCII imprimables (considérés
comme tels par isprint(3)). Les
caractères non imprimables sont
affichés dans l’une des trois formes
suivantes : la forme C « \[bfrnt]
» ; la forme caractère de
contrôle « ^ »
(p.ex. « ^@ ») ; ou la forme
hexadécimale avec un « \x
» de tête (p.ex. «
\xab »). L’espace est non imprimable dans
la colonne COMMAND (« \x20 ») et
imprimable ailleurs.
Lsof dimensionne dynamiquement les colonnes de
sortie à chaque fois qu’il est
exécuté, en garantissant que
chaque colonne ait une taille minimale. Il garantit aussi
que chaque colonne est séparée de
la précédente par au moins une
espace.
|
|
COMMAND
|
|
contient les neuf premiers caractères du nom
de la commande UNIX associée au processus.
|
|
Tous les caractères de nom de commandes
conservés par le noyau dans ses structures sont
affichés dans la sortie en champs quand le
descripteur de nom de commande (« c
») est spécifié.
Voyez la section SORTIE POUR D’AUTRES
PROGRAMMES pour plus d’informations sur la
sélection des champs de sortie et sur le
descripteur du nom de commande associé.
|
|
PID
|
|
est le numéro d’IDentification de
Processus du processus.
|
|
PPID
|
|
est le numéro d’IDentification du
Processus Parent du processus. Il n’est
affiché que lorsque l’option
−R a été
spécifiée.
|
|
PGID
|
|
est le numéro d’IDentification de
Groupe de Processus associé au processus. Il
n’est affiché que lorsque l’option
−g a été
spécifiée.
|
|
USER
|
|
est le numéro d’ID
d’utilisateur ou le nom de connexion de
l’utilisateur à qui appartient le processus,
habituellement le même que celui
rapporté par ps(1).
Néanmoins, sous Linux, USER est le
numéro d’ID ou le nom de connexion de
l’utilisateur qui détient le
répertoire /proc où lsof
trouve de l’information sur le processus.
Habituellement, c’est la même valeur que
celle rapportée par ps(1), mais elle
peut différer quand le processus a
changé de UID effectif. (Voyez la description
de l’option −l pour obtenir de
l’information sur le moment où un
numéro UID ou un nom de connexion est
affiché.)
|
|
FD
|
|
est le numéro de Descripteur de Fichier du
fichier ou :
|
|
cwd
|
répertoire de travail actuel ;
|
|
|
Lnn
|
références de librairie (AIX)
;
|
|
|
jld
|
répertoire « prison
» (FreeBSD) ;
|
|
|
ltx
|
texte de librairie partagée (code et
données) ;
|
|
|
Mxx
|
HEX MEMORY−MAPPED TYPE NUMBER xx.
|
|
|
m86
|
DOS MERGE MAPPED FILE ;
|
|
|
mem
|
fichier projeté en mémoire
;
|
|
|
mmap
|
périphérique
projeté en mémoire ;
|
|
|
pd
|
répertoire parent ;
|
|
|
rtd
|
répertoire racine ;
|
|
|
txt
|
texte du programme (code et données) ;
|
|
|
v86
|
VP/ix MAPPED FILE ;
|
|
|
FD est suivi par l’un de ces
caractères, décrivant le mode selon
lequel le fichier est ouvert :
|
|
r pour un accès en lecture ;
|
|
|
|
w pour un accès en
écriture ;
|
|
|
|
u pour un accès en lecture et
|
|
|
|
en écriture ;
|
|
|
|
espace si mode inconnu et si aucun
|
|
|
|
caractère de verrouillage ne suit ;
|
|
|
|
« − » si mode inconnu et
caractère
|
|
|
|
|
de verrouillage à la suite.
|
|
|
Le caractère de mode est suivi par l’un
de ces caractères de verrouillage,
décrivant le type de verrou
appliqué au fichier :
|
|
N pour un verrou Solaris NFS de type
|
|
|
|
inconnu ;
|
|
|
|
r pour un verrou en lecture sur une partie
|
|
|
|
du fichier ;
|
|
|
|
R pour un verrou en lecture sur le fichier
|
|
|
|
entier ;
|
|
|
|
w pour un verrou en écriture sur
une
|
|
|
|
partie du fichier ;
|
|
|
|
W pour un verrou en écriture sur
le
|
|
|
|
fichier entier ;
|
|
|
|
u pour un verrou en lecture et
écriture
|
|
|
|
de n’importe quelle longueur ;
|
|
|
|
U pour un verrou de type inconnu ;
|
|
|
|
x pour un verrou Xenix SCO OpenServer sur
|
|
|
|
une partie du fichier ;
|
|
|
|
|
|
|
|
X pour un verrou Xenix SCO OpenServer sur
|
|
|
|
le fichier entier ;
|
|
|
|
espace s’il n’y a pas de verrou.
|
|
|
|
Voyez la section VERROUS pour plus
d’informations sur le caractère
d’information de verrouillage.
Le contenu de la colonne FD constitue un champ unique
pour l’analyse syntaxique dans les scripts de
post−traitement.
|
|
TYPE
|
|
est le type de noeud associé au fichier
− p.ex. GDIR, GREG, VDIR, VREG, etc.
|
|
ou « IPv4 » pour un socket IPv4
;
ou « IPv6 » pour un fichier
réseau IPv6 ouvert − même si
son adresse est de type IPv4, convertie en une adresse IPv6
;
ou « ax25 » pour un socket
Linux AX.25 ;
ou « inet » pour un socket de
domaine Internet ;
ou « lla » pour un fichier
d’accès HP−UX de niveau lien ;
ou « rte » pour un socket
AF_ROUTE ;
ou « sock » pour un socket de
domaine inconnu ;
ou « unix » pour un socket de
domaine UNIX ;
ou « x.25 » pour un socket x.25
HP−UX ;
ou « BLK » pour un fichier
spécial en mode bloc ;
ou « CHR » pour un fichier
spécial en mode caractère ;
ou « DEL » pour un LINUX MAP
FILE qui a été effacé
;
ou « DIR » pour un
répertoire ;
ou « DOOR » pour un fichier
VDOOR ;
ou « FIFO » pour un fichier
spécial de type FIFO ;
ou « LINK » pour un fichier
lien symbolique ;
ou « MPB » pour un fichier
multiplexé en mode bloc ;
ou « MPC » pour un fichier
multiplexé en mode caractère ;
ou « PAS » pour un fichier
/proc/as ;
ou « PAXV » pour un fichier
/proc/auxv ;
ou « PCRE » pour un fichier
/proc/cred ;
ou « PCTL » pour un fichier de
contrôle de /proc ;
ou « PCUR » pour le processus
courant de /proc ;
ou « PCWD » pour un
répertoire de travail courant de /proc
;
ou « PDIR » pour un
répertoire /proc ;
ou « PETY » pour un type
exécutable de /proc (etype) ;
ou « PFD » pour un descripteur
de fichier de /proc ;
ou « PFDR » pour un
répertoire de descripteurs de fichiers de
/proc ;
ou « PFIL » pour un fichier
exécutable de /proc ;
ou « PFPR » pour un jeu de
registres FP de /proc ;
ou « PGD » pour un fichier
/proc/pagedata ;
ou « PGID » pour un fichier
notifieur de groupe de /proc ;
ou « PIPE » pour les tubes
;
ou « PLC » pour un fichier
/proc/lwpctl ;
ou « PLDR » pour un
répertoire /proc/lpw ;
ou « PLDT » pour un fichier
/proc/ldt ;
ou « PLPI » pour un fichier
/proc/lpsinfo ;
ou « PLST » pour un fichier
/proc/lstatus ;
ou « PLU » pour un fichier
/proc/lusage ;
ou « PLWG » pour un fichier
/proc/gwindows ;
ou « PLWI » pour un fichier
/proc/lwpsinfo ;
ou « PLWS » pour un fichier
/proc/lwpstatus ;
ou « PLWU » pour un fichier
/proc/lwpusage ;
ou « PLWX » pour un fichier
/proc/xregs ;
ou « PMAP » pour un MAP FILE de
/proc (map) ;
ou « PMEM » pour un fichier
d’image mémoire de /proc ;
ou « PNTF » pour un fichier
notifieur de processus de /proc ;
ou « POBJ » pour un fichier
/proc/object ;
ou « PODR » pour un
répertoire /proc/object ;
ou « POLP » pour un fichier de
processus léger de /proc dans
l’ancien format ;
ou « POPF » pour un fichier de
PID de /proc dans l’ancien format ;
ou « POPG » pour un
/proc PAGE DATA FILE dans l’ancien format ;
ou « PORT » pour un tube
nommé SYSV ;
ou « PREG » pour un fichier
d’enregistrement à /proc ;
ou « PRMP » pour un fichier
/proc/rmap ;
ou « PRTD » pour un
répertoire racine de /proc ;
ou « PSGA » pour un fichier
/proc/sigact ;
ou « PSIN » pour un fichier
/proc/psinfo ;
ou « PSTA » pour un fichier de
statut de /proc ;
ou « PUSG » pour un fichier
/proc/usage ;
ou « PW » pour un fichier
/proc/watch ;
ou « PXMP » pour un fichier
/proc/xmap ;
ou « REG » pour un fichier
régulier (normal) ;
ou « SMT » pour un fichier de
transport de mémoire partagée
;
ou « STSO » pour un socket de
flux ;
ou « UNNM » pour un fichier de
type anonyme ;
ou « XNAM » pour un fichier
spécial Xenix OpenServer de type inconnu ;
ou « XSEM » pour un fichier
sémaphore Xenix OpenServer ;
ou « XSD » pour un fichier de
données partagées Xenix
OpenServer.
|
|
FILE−ADDR
|
|
contient l’adresse de la structure de fichier du
noyau quand f a été
spécifié à +f;
|
|
FCT
|
|
contient le nombre de
références de fichiers Ã
partir de la structure de fichier du noyau quand c a
été
spécifié à +f;
|
|
FILE−FLAG
|
|
quand g ou G a
été
spécifié à +f, ce
champ contient le contenu du (des) membre(s) f_flag[s] de la
structure de fichier du noyau et les attributs des fichiers
ouverts par processus du noyau (s’ils sont
disponibles) ; « G » provoque leur
affichage en hexadécimal ; « g
», comme diminutifs ; deux listes peuvent
être affichées, les
entrées étant
séparées par des virgules, les
listes étant séparées
par un point-virgule (« ; ») ; la
première liste peut contenir des diminutifs pour
les valeurs de f_flag[s] de la table suivante :
|
|
AIO
|
|
E/S asynchrone (p.ex. FAIO)
|
|
|
|
|
AP
|
|
concaténation
|
|
|
|
|
ASYN
|
|
E/S asynchrone (p.ex. FASYNC)
|
|
|
|
|
BAS
|
|
BLOCK, TEST, AND SET IN USE
|
|
|
|
|
BKIU
|
|
BLOCK IF IN USE
|
|
|
|
|
BL
|
|
utiliser les décalages de blocs
|
|
|
|
|
BSK
|
|
recherche de bloc
|
|
|
|
|
CA
|
|
évitement de copie
|
|
|
|
|
CLON
|
|
clone
|
|
|
|
|
CLRD
|
|
CL READ
|
|
|
|
|
CR
|
|
créer
|
|
|
|
|
DF
|
|
différer
|
|
|
|
|
DFI
|
|
différer IND
|
|
|
|
|
DFLU
|
|
vidage de données
|
|
|
|
|
DIR
|
|
DIRECTz(quelle traduction?)
|
|
|
|
|
DLY
|
|
délai
|
|
|
|
|
DOCL
|
|
créer un clone
|
|
|
|
|
DSYN
|
|
intégrité des
données uniquement
|
|
|
|
|
EX
|
|
ouverture pour exec
|
|
|
|
|
EXCL
|
|
ouverture exclusive
|
|
|
|
|
FSYN
|
|
écritures synchrones
|
|
|
|
|
GCDF
|
|
différer pendant unp_gc() (AIX)
|
|
|
|
|
GCMK
|
|
marquer pendant unp_gc() (AIX)
|
|
|
|
|
GTTY
|
|
accédé via /dev/tty
|
|
|
|
|
HUP
|
|
HUP en cours
|
|
|
|
|
KERN
|
|
noyau
|
|
|
|
|
KIOC
|
|
ioctl émis du noyau
|
|
|
|
|
LCK
|
|
possède un verrou
|
|
|
|
|
LG
|
|
gros fichier
|
|
|
|
|
MBLK
|
|
bloc de message de flux
|
|
|
|
|
MK
|
|
marqué
|
|
|
|
|
MNT
|
|
monté
|
|
|
|
|
MSYN
|
|
synchronisation multiplexée
|
|
|
|
|
NB
|
|
E/S non bloquantes
|
|
|
|
|
NBDR
|
|
pas de contrôle BDRM
|
|
|
|
|
NBIO
|
|
E/S SYSV non bloquantes
|
|
|
|
|
NBF
|
|
n−buffering en cours
|
|
|
|
|
NC
|
|
pas de cache
|
|
|
|
|
ND
|
|
pas de délai
|
|
|
|
|
NDSY
|
|
pas de synchronisation des données
|
|
|
|
|
NET
|
|
réseau
|
|
|
|
|
NMFS
|
|
système de fichiers NM
|
|
|
|
|
NOTO
|
|
DISABLE BACKGROUND STOP
|
|
|
|
|
NSH
|
|
aucun partage
|
|
|
|
|
NTTY
|
|
aucun TTY de contrôle
|
|
|
|
|
OLRM
|
|
miroir OLR
|
|
|
|
|
PAIO
|
|
E/S POSIX asynchrones
|
|
|
|
|
PP
|
|
tube POSIX
|
|
|
|
|
R
|
|
READ
|
|
|
|
|
RAIO
|
|
requête RAIO sur Reliant UNIX
|
|
|
|
|
RC
|
|
cache de verrouillage de fichier et
d’enregistrement
|
|
|
|
|
REV
|
|
révoqué
|
|
|
|
|
RSH
|
|
lecture partagée
|
|
|
|
|
RSYN
|
|
synchronisation en lecture
|
|
|
|
|
SL
|
|
verrou partagé
|
|
|
|
|
SOCK
|
|
socket
|
|
|
|
|
SQSH
|
|
Sequent
|
|
SHARED SET ON OPEN(Sequent:type de machine non?)
|
|
|
SQSV
|
|
Sequent
|
|
SVM SET ON OPEN
|
|
|
SQR
|
|
Sequent
|
|
SET REPAIR ON OPEN
|
|
|
SQS1
|
|
Sequent
|
|
FULL SHARED OPEN
|
|
|
SQS2
|
|
Sequent
|
|
PARTIAL SHARED OPEN
|
|
|
STPI
|
|
arrêter les E/S
|
|
|
|
|
SWR
|
|
SYNCHROUNOUS READ (rem:ça serait pas
écriture plutôt? Synchro
WRite)
|
|
|
|
|
SYN
|
|
intégrité du fichier lors de
l’écriture
|
|
|
|
|
TCPM
|
|
éviter les collision TCP
|
|
|
|
|
TR
|
|
tronquer
|
|
|
|
|
W
|
|
écrire
|
|
|
|
|
WKUP
|
|
synchronisation I/O parallèles
|
|
|
|
|
WTG
|
|
synchronisation I/O parallèles
|
|
|
|
|
VH
|
|
vhangup en attente
|
|
|
|
|
VTXT
|
|
texte virtuel
|
|
|
|
|
XL
|
|
verrou exclusif
|
|
|
|
|
cette liste de noms a été
dérivée des #define F* dans les
fichiers d’en-tête de dialecte
<fcntl.h>, <linux</fs.h>, sys/fcntl.c>,
<sys/fcntlcom.h> et <sys/file.h> ; voyez le
fichier d’en−tête lsof.h pour une
liste des correspondances entre les diminutifs
ci−dessus et les définitions du fichier
d’en-tête ;
la seconde liste (après le point-virgule)
peut contenir des diminutifs ci−dessus pour les
attributs des fichiers ouverts par processus du noyau en
provenance de cette table :
|
|
ALLC
|
|
alloué
|
|
|
BR
|
|
le fichier a été lu
|
|
|
BHUP
|
|
activité stoppée par
SIGHUP
|
|
|
BW
|
|
le fichier a été
écrit
|
|
|
CLSG
|
|
fermeture
|
|
|
CX
|
|
close−on-exec (voir fcntl(F_SETFD))
|
|
|
MP
|
|
projeté en mémoire
|
|
|
LCK
|
|
verrou appliqué
|
|
|
RSVW
|
|
attente réservée
|
|
|
SHMT
|
|
ensemble UF_FSHMAT (AIX)
|
|
|
USE
|
|
en cours d’utilisation
(multi−threadé)
|
|
|
NODE−ID
|
|
(ou INODE−ADDR dans certains dialectes) contient
un identificateur unique pour le noeud du fichier
(habituellement l’adresse d’i−noeud ou de
v−noeud du noyau, mais parfois également
une concaténation du
périphérique et du
numéro de noeud) quand n a
été
spécifié à +f;
|
|
DEVICE
|
|
contient les numéros de
périphériques,
séparés par des virgules, pour un
fichier spécial en mode caractère,
en mode bloc, pour un fichier régulier, un
répertoire ou un fichier NFS ;
|
|
ou « memory » pour un noeud de
système fichier mémoire sous DEC
OSF/1, Digital UNIX ou Tru64 UNIX;
ou l’adresse de la zone de données
privées d’un flux de socket Solaris ;
ou une adresse de référence
dans le noyau qui identifie le fichier (l’adresse de
référence dans le noyau peut
être utilisée pour les FIFOs, par
exemple.);
ou l’adresse de base ou le nom de
périphérique d’un
périphérique de socket Linux
AX.25.
Habituellement, seuls les 32 bits de poids faible des
adresses noyau DEC OSF/1, Digital UNIX ou Tru64 UNIX sont
affichés.
|
|
SIZE, SIZE/OFF, or OFFSET |
|
est la taille du fichier ou la position dans le fichier
en octets. Une valeur n’est affichée dans
cette colonne que si elle est disponible. Lsof
affiche la valeur − taille ou position − qui est
appropriée et disponible pour le type du
fichier et la version de lsof.
|
|
Sous certains dialectes UNIX, lsof ne peut obtenir
d’information de position dans le fichier
précise ou logique à partir des sources
de données du noyau, parfois seulement pour
certains types spéciaux de fichiers (p.ex. les
fichiers de socket). Dans d’autres cas, les fichiers
ne possèdent pas de taille réelle
− p.ex. les sockets, FIFOs, tubes − de ce fait,
lsof affiche au lieu de leur taille le total contenu
trouvé dans leurs descripteurs de tampon dans
le noyau (p.ex. SOCKET BUFFER SIZE COUNTS ou tailles de
fenêtre TCP/IP.) Consultez la FAQ lsof
(La section FAQ vous donne son emplacement.) pour
plus d’informations.
La taille de fichier est affichée en
décimal ; la position est normalement
affichée en décimal avec un
« 0t » de tête
s’il contient 8 chiffres ou moins ; en
hexadécimal avec un « 0x
» de tête s’il est plus long
que 8 chiffres. (Consultez la description de l’option
−o o pour savoir si 8 est bien la valeur
par défaut.)
Par conséquent, les « 0t
» et « 0x » de
tête identifient une position quand la colonne
peut contenir à la fois une taille et une position
(c.−Ã −d. lorsque son titre est
SIZE/OFF).
Si l’option −o est
spécifiée, lsof affiche
toujours la position dans le fichier (ou rien du tout si
aucune position n’est disponible) et nomme la colonne
OFFSET. La position commence toujours par « 0t
» ou « 0x » comme
décrit plus haut.
L’utilisateur de lsof peut
contrôler le passage de « 0t
» en « 0x » avec
l’option −o o. Consultez sa
description pour plus d’informations.
Si l’option −s est
spécifiée, lsof affiche
toujours la taille du fichier (ou rien du tout si aucune
taille n’est disponible) et nomme la colonne SIZE. Les
options −o et −s sont mutuellement
exclusives ; elles ne peuvent être
spécifiées en même
temps.
Pour les fichiers qui n’ont pas une taille fixe
− p.ex. qui ne résident pas sur un
périphérique de disque −
lsof affichera une information
appropriée sur la taille courante ou la
position du fichier si elle est disponible dans les
structures du noyau qui définissent le
fichier.
|
|
NODE
|
|
est le numéro de noeud d’un fichier
local ;
|
|
ou le numéro d’i−noeud
d’un fichier NFS sur l’hôte
serveur ;
ou le type de protocole Internet − p.ex.
« TCP » ;
ou « STR » pour un flux ;
ou « CCITT » pour un socket
HP−UX x.25 ;
ou l’IRQ ou le numéro
d’i−noeud pour un
périphérique socket Linux
AX.25.
|
|
NAME
|
|
est le nom du point de montage et du système
de fichiers sur lequel réside le fichier ;
|
|
ou le nom d’un fichier
spécifié dans l’option
noms (après que tous les liens
symboliques aient été
résolus) ;
ou le nom d’un
périphérique spécial
en mode caractère ou bloc ;
ou les adresses Internet locale et distante d’un
fichier réseau ; le nom
d’hôte local ou adresse IP est suivi par
un signe deux−points (« :
»), le port, « ->
», et l’adresse distante en deux parties
; les adresses IP peuvent être
rapportées sous forme décimale
pointée ou en tant que noms, en fonction des
options +|−M, −n et −P
; les numéros IPv6
séparés par des deux−points
sont enfermés entre crochets ; les adresses
IPv4 INADDR_ANY et IPv6 IN6_IS_ADDR_UNSPECIFIED, et le
numéro de port nul (zéro) sont
représentés par une
astérisque (« * ») ;
une adresse destination UDP peut être suivie
par la durée écoulée
depuis que le dernier paquet a été
envoyé à la destination ; les adresses
distantes TCP et UDP peuvent être suivies par
de l’information TCP/TPI entre parenthèses
− état (p.ex. «
(ESTABLISHED) », « (Unbound)
»), tailles de queue, et tailles de
fenêtre (pas sur tous les dialectes) −
d’une manière similaire à celle que
rapporte netstat(1) ; voyez la description de
l’option −T ou la description du champ
TCP/TPI dans SORTIE POUR D’AUTRES PROGRAMMES
pour en savoir plus sur l’état, la taille
de queue, et la taille de fenêtre ;
ou l’adresse ou nom d’un socket de domaine
UNIX, incluant éventuellement un nom de
périphérique clone de flux, un nom
de chemin d’un objet du système de
fichiers, des adresses noyau locales et distantes, SOCKET
PAIR INFORMATION, et A BOUND VNODE ADDRESS ;
ou les noms des points de montage locaux et distants
d’un fichier NFS ;
ou « STR », suivi par le nom du
flux ;
ou un STREAM CHARACTER DEVICE NAME, suivi par
« -> » et le nom du flux ;
ou « STR: » suivi par le
périphérique de flux SCO
OpenServer et le nom des modules,
séparés par « ->
»;
ou un nom de répertoire système,
« -- », et autant de composants du
nom de chemin que peut en trouver lsof dans le cache
de noms du noyau pour les dialectes
sélectionnés (Voyez la section
CACHE DE NOMS DU NOYAU pour plus
d’informations.) ;
ou « PIPE-> », suivi par une
adresse de destination d’un tube noyau Solaris ;
ou « COMMON: », suivi par le
nom de périphérique de la
structure d’information sur le
périphérique du v−noeud,
pour un v-noeud Solaris ordinaire ;
ou la famille d’adresses, suivie par un slash
(« / »), suivie par 14 octets
séparés par des virgules
d’une adresse de socket non−internet en mode
brut ;
ou l’adresse locale HP−UX x.25, suivie par le
numéro de connexion virtuelle (s’il y en
a), suivi par l’adresse distante (s’il y en a
une) ;
ou « (dead) » pour des fichiers
dissociés OSF/1, Digital UNIX ou Tru64 UNIX
− typiquement les fichiers de terminaux qui ont
été marqués par ioctl
TIOCNOTTY et fermés par des démons
;
ou « rd=<offset> » et
« wr=<offset> » pour les
valeurs des positions de lecture et
d’écriture d’une FIFO ;
ou « clone n:/dev/event
» pour les clones de fichiers SCO OpenServer du
périphérique /dev/event ,
où n est le numéro mineur
de périphérique du fichier ;
ou « (socketpair: n) » pour un
socket Solaris 2.6, 7, 8 BETA ou 8 BETA-Refresh de domaine
UNIW, créé par la fonction
réseau socketpair(3N) ;
ou « no PCB » pour les fichiers
socket qui n’ont pas de bloc protocole
associé, éventuellement suivi par
« , CANTSENDMORE » (ne peut plus
rien envoyer) si l’envoi sur le socket a
été
désactivé, ou « ,
CANTRCVMORE » (ne peut plus rien recevoir) si
la réception en provenance du socket a
été
désactivée (p.ex. par la fonction
shutdown(2) ) ;
ou les adresses locale et distante d’un fichier
socket IPX Linux de la forme
<net>:[<noeud>:]<port>, suivi entre
parenthèses par les tailles des queues de
transmission et de réception, et
l’état de la connexion ;
ou « dgram » ou «
stream » pour les sockets de domaine Unix du
noyau du type UnixWare 7.1.1 et supérieur,
suivi par un signe deux−points (« :
») et le nom de chemin local quand il est
disponible, suivi par « -> » et
le nom de chemin distant ou l’adresse noyau du socket
en hexadécimal lorsque c’est
disponible. |
|
Pour les dialectes qui supportent un système
de fichiers « namefs », permettant
à un fichier d’être
attaché à un autre avec
fattach(3C), lsof ajoutera «
(FA:<adresse1><direction><adresse2>)
» dans la colonne NAME. <adresse1> et
<adresse2> sont des adresses de v-noeuds
hexadécimales. <direction> sera
« <- » si <adresse2> a
été fattach−ée
à ce v-noeud dont l’adresse est
<adresse1> ; et « -> » si
<adresse1>, l’adresse de v-noeud de ce v-noeud,
a été
fattach−ée à <adresse2>.
<adresse1> peut être omise si elle
apparaît déjà dans la
colonne DEVICE.
|
VERROUS
|
Lsof ne peux rapporter adéquatement
la large variété des verrous de
fichier des dialectes UNIX en un seul caractère.
Ce qu’il rapporte en un seul caractère est
un compromis entre l’information qu’il extrait
du noyau et les limitations du format de rapport.
Qui plus est, quand un processus détient
plusieurs verrous au niveau octet sur un fichier,
lsof ne rapporte que le statut du premier verrou
rencontré. S’il s’agit d’un
verrou au niveau octet, alors le caractère de
verrouillage sera rapporté en minuscule −
c.−à −d. « r »,
« w » ou « x
» − plutôt que la majuscule
équivalente rapportée pour un
verrou de fichier entier.
Généralement, lsof ne
peux rapporter que les verrous détenus par des
processus locaux sur des fichiers locaux. Quand un processus
local pose un verrou sur un fichier monté
à distance (p.ex. via NFS),
l’hôte serveur distant enregistre
habituellement l’état du verrou. Solaris
forme une exception − pour certains niveaux de patch
des version 2.3, et dans toutes les version
supérieures à 2.4, le noyau Solaris
enregistre de l’information sur les verrous distants
dans des structures locales.
Lsof a du mal à rapporter les verrous pour
certains dialectes UNIX. Consultez la section BOGUES
de cette page de manuel ou la FAQ lsof (La section
FAQ vous donne son emplacement.) pour plus
d’informations.
|
SORTIE POUR D’AUTRES PROGRAMMES
|
Quand l’option −F est
spécifiée, lsof produit une
sortie qui convient au traitement par un autre programme
− p.ex. un script awk ou Perl.
Chaque unité d’information est
produite en sortie dans un champ qui est
identifié par un caractère de
tête et qui est terminé par un NL
(012) (ou un NUL (000) si le caractère
identificateur de champ 0 (zéro) est
spécifié.) Les
données du champ suivent
immédiatement le caractères
d’identification de champ et
s’étendent jusqu’au terminateur de
champ.
Il est possible de se représenter la sortie
en champs comme des ensembles de processus et de fichiers.
Un ensemble de processus commence par un champ dont
l’identificateur est « p »
(pour IDentificateur de processus)). Il
s’étend jusqu’au commencement du
champ de PID suivant ou jusqu’au début du
premier ensemble de fichiers du processus, celui qui vient
en premier. Sont également inclus dans
l’ensemble de fichiers : les champs qui identifient la
commande, le numéro d’IDentification de
Groupe de Processus (PGID), et le numéro
d’ID d’utilisateur (UID) ou nom de
connexion.
Un ensemble de fichiers commence par un champ dont
l’identificateur est « f »
(pour descripteur de fichier). Il est suivi de lignes
décrivant les modes d’accès,
état de verrouillage, type,
périphérique, taille, offset,
i-noeud, protocole et nom du fichier, et les noms des
modules de flux. Il s’étend
jusqu’au début de l’ensemble de
fichiers ou de processus suivant, Ã savoir celui
vient en premier.
Quand le terminateur de champ NUL (000) a
été
sélectionné avec le
caractère identificateur de champ 0
(zéro), lsof termine chaque ensemble de
processus et de fichiers par un caractère NL
(012).
Lsof produit toujours un champ, le champ PID
(« p »). Tous les autres champs
peuvent être déclarés
facultativement dans la liste de caractères
identificateurs de champ qui suit l’option
−F. Quand un caractère de
sélection de champ identifie un
élément que ne liste normalement
pas lsof − p.ex. le PPID,
sélectionné avec la
spécification −R − de
caractère de champ − p.ex. «
−FR » −
sélectionne également le listage
de l’élément.
Il est parfaitement possible de sélectionner
un groupe de champs qui ne peuvent aisément
être analysé − p.ex. si le
champ de descripteur de champ n’est pas
sélectionné, il peut
être difficile d’identifier les ensembles
de fichiers. Pour vous aider à éviter
cet obstacle, lsof supporte l’option
−F ; elle sélectionne la sortie de
tous les champs de terminateur NL (le couple d’options
−F0 sélectionne la sortie de tous
les champs de terminateur NUL). Pour des raisons de
compatibilité, ni −F ni
−F0 ne sélectionnent le champ raw
device.
Voici les champs que produira lsof. Le
caractère unique listé en premier
lieu est l’identificateur de champ.
|
|
a
|
mode d’accès du fichier
|
|
|
c
|
nom de commande du processus (tous les
caractères provenant de
|
|
|
|
proc ou d’une structure utilisateur)
|
|
|
C
|
nombre de partages de la structure fichier
|
|
|
d
|
code de caractère du
périphérique du fichier
|
|
|
D
|
numéro de
périphérique majeur/mineur
(0x<hexadécimal>)
|
|
|
f
|
descripteur du fichier
|
|
|
F
|
adresse de la structure fichier
(0x<hexadécimal>)
|
|
|
G
|
attributs du fichier (0x<hexadécimal>
; NAMES(la commande?) si suivi de +fg)
|
|
|
i
|
numéro d’i−noeud du fichier
|
|
|
l
|
état de verrouillage du fichier
|
|
|
L
|
nom de l’utilisateur exécutant le
processus
|
|
|
m
|
marqueur entre des sorties
répétées
|
|
|
n
|
nom du fichier, commentaire, adresse Internet
|
|
|
N
|
identificateur de noeud
(ox<hexadécimal>
|
|
|
o
|
position dans le fichier (décimal)
|
|
|
p
|
ID du processus (toujours
sélectionné)
|
|
|
g
|
ID du groupe de processus
|
|
|
P
|
nom du protocole
|
|
|
r
|
numéro de
périphérique brut
(0x<hexadécimal>)
|
|
|
R
|
ID du processus père
|
|
|
s
|
taille du fichier (décimale)
|
|
|
S
|
identification du flux du fichier
|
|
|
t
|
type du fichier
|
|
|
T
|
information TCP/TPI, identifiée par des
préfixes (le
|
|
|
|
« = » fait partie du
préfixe) :
|
|
|
|
ST=<état>
|
|
|
|
QR=<taille queue de lecture>
|
|
|
|
QS=<taille queue de écriture>
|
|
|
|
WR=<taille fenêtre de lecture> (pas
tous les dialectes)
|
|
|
|
WW=<taille fenêtre
d’écriture> (pas tous les
dialectes)
|
|
|
|
(L’information d’état TPI et
les tailles de fenêtre ne sont pas
|
|
|
|
rapportées sur tous les dialectes UNIX
supportés.
|
|
|
|
La sortie d’aide −h ou
−? pour l’option −T montrera
si on peut
|
|
|
|
requérir le rapportage de la taille de
fenêtre.)
|
|
|
u
|
ID utilisateur du processus
|
|
|
0
|
utiliser le caractère de terminaison de
champ NUL plutôt que NL
|
|
|
1−9
|
identificateurs de champs spécifiques au
dialecte (La sortie
|
|
|
|
de −F? identifie l’information que
l’on peut trouver
|
|
|
|
dans les champs spécifiques au
dialecte.)
|
|
|
Vous pouvez obtenir de l’information en ligne sur
ces caractères et leur description en
spécifiant le couple d’options
−F? (Protégez le
caractère « ? » si
votre shell le requiert.) Des informations
supplémentaires sur le contenu des champs
peuvent être trouvées dans la
section SORTIE.
Par exemple, « −F pcfn
» sélectionnera les champs ID de
processus (« p »), nom de commande
(« c »), descripteur de fichier
(« f ») et le nom de fichier
(« n ») avec NL servant comme
caractère terminateur de champ ; «
−F pcfn0 »
sélectionne la même sortie mais
avec NUL (000) comme caractère terminateur de
champ.
Lsof ne produit pas tous les champs pour chaque
ensemble de processus ou de fichiers, mais uniquement ceux
qui sont disponibles. Certains champs sont mutuellement
exclusifs : les caractères de
périphérique de fichier et les
numéros de
périphérique majeur/mineur ;
numéro d’i−noeud du fichier et nom
de protocole ; nom du fichier et identification du flux ;
taille du fichier et position. Un seul membre de ces
ensembles mutuellement exclusifs apparaîtra dans
la sortie des champs, mais pas les deux.
Normalement, lsof termine chaque champ par un
caractère NL (012). Le caractère
identificateur de champ 0 (zéro) peut
être spécifié pour
remplacer le caractère terminateur de champ par
un NUL (000). Un terminateur NUL peut être plus
facile à traiter avec xargs (1), par exemple,
ou avec des programmes dont les mécanismes de
protection ne peuvent facilement gérer
l’intervalle de caractères dans la sortie
en champs. Quand le terminateur de champ NUL est
utilisé, lsof termine chaque ensemble de
processus et de fichiers par un NL (012).
Deux aides à la production de programmes pouvant
traiter la sortie en champs de lsof sont incluses
dans la distribution de lsof. La première
est un fichier d’en−tête,
lsof_fields.h, qui contient des symboles pour les
caractères d’identification de champs, des
index pour les stocker dans une table, et des
chaînes de caractères
d’explication qui peuvent être
compilées dans les programmes. Lsof
utilise ce fichier d’en−tête.
La seconde aide et un jeu de scripts d’exemples qui
traitent la sortie en champs, qui sont écrits
en awk, Perl 4, et Perl 5. Ils sont
situés dans le
sous−répertoire scripts de la
distribution de lsof.
|
BLOCAGES ET TEMPORISATIONS
|
Lsof peut être bloqué
par certaines fonctions du noyau qu’il utilise −
lstat(2), readlink(2) et stat(2). Ces
fonctions sont bloquées dans le noyau, par
exemple, quand les hôtes où
résident des systèmes de fichiers
montés NFS deviennent inaccessibles.
Lsof essaie de se dégager de ces
blocages grâce à des temporisateurs et
des processus enfants, mais les techniques ne sont pas
entièrement fiables. Quand lsof arrive
à se dégager d’un blocage, il
rapportera ce blocage par un message d’erreur. Les
messages peuvent être supprimés
avec les options −t et −w.
La valeur de temporisation par défaut peut
être affichée avec l’option
−h ou −? , et peut
être modifiée avec l’option
−S [t]. Le minimum pour t
est deux secondes, mais vous devriez éviter de
faibles valeurs, car le temps de réponse de
systèmes lents peut provoquer l’expiration
de temporisateurs de façon inattendue et
peut−être stopper lsof avant
qu’il n’ait pu produire quoi que ce soit en
sortie.
Quand lsof doit se dégager d’un
blocage pendant un accès à de
l’information sur le système de fichiers
monté, il continue normalement, bien que
disposant de moins d’information disponible Ã
afficher sur les fichiers ouverts.
Lsof peut également être
enjoint à éviter la protection des
temporisateurs et des processus enfants quand il utilise des
fonctions du noyau qui pourraient bloquer en
spécifiant l’option −O. Bien
que cela permette à lsof de
démarrer avec une moins grande surcharge, cela
expose complètement lsof aux situations
de noyau qui pourraient le bloquer. Utilisez cette option
avec précaution.
|
ÃVITER LES BLOCAGES DU NOYAU
|
Vous pouvez utiliser l’option −b pour
indiquer à lsof d’éviter
d’utiliser les fonctions du noyau qui pourraient
bloquer. Certaines précautions sont de
mise.
D’abord, l’utilisation de cette option
requiert habituellement que votre système
fournisse des numéros de
périphériques alternatifs en lieu
et place des numéros de
périphériques qu’obtiendrait
normalement lsof via les fonctions du noyau
lstat(2) et stat(2). Voyez la section
NUMÃROS DE PÃRIPHÃRIQUES
ALTERNATIFS pour en savoir plus sur les
numéros de
périphériques alternatifs.
Ensuite, vous ne pouvez spécifier de
noms à faire localiser par lsof
à moins qu’ils ne soient des noms de
systèmes de fichiers. Cela est dû
au fait que lsof doit connaître les
numéros de
périphérique et
d’i−noeud des fichiers listés avec
noms dans les options de lsof , et que
l’option −b empêche
lsof de les obtenir. De plus, puisque lsof ne
dispose de numéro de
périphériques que pour les
systèmes de fichiers qui ont des alternatives,
sa faculté à localiser des fichiers sur
des systèmes de fichiers dépend
entièrement de la disponibilité et
de la précision des alternatives. Si aucune
alternative n’est disponible, ou si elles sont
incorrectes, lsof ne sera pas en mesure de localiser
des fichiers sur les systèmes de fichiers
nommés.
De plus, si les noms des répertoires de
votre système de fichiers obtenus par
lsof à partir de la table de montage de votre
système sont des liens symboliques, lsof
ne sera pas capable de résoudre les liens. Cela
est dû au fait que l’option
−b fait éviter Ã
lsof l’utilisation de la fonction du noyau
readlink(2) qu’il utilise pour
résoudre les liens symboliques.
Finalement, l’utilisation de l’option
−b fait émettre des messages
d’avertissement à lsof quand il a besoin
d’utiliser les fonctions du noyau que l’option
−b lui ordonne d’éviter.
Vous pouvez supprimer ces messages en
spécifiant l’option −w ,
mais si vous le faites, vous ne verrez pas les
numéros de
périphériques alternatifs
rapportés dans les messages
d’avertissement.
|
NUMÃROS DE PÃRIPHÃRIQUES ALTERNATIFS
|
Sur certains dialectes, quand lsof doit se
dégager d’un blocage parce qu’il ne
peut obtenir d’information sur un système
de fichiers monté via les fonctions du noyau
lstat(2) et stat(2) , ou parce que vous avez
spécifié l’option
−b , lsof peut obtenir certaines
informations qu’il désire − le
numéro de
périphérique et
peut−être le type du système
de fichiers − Ã partir de la table de montage
du système. Quand cela est possible, lsof
rapportera le numéro de
périphérique qu’il a obtenu.
(Vous pouvez empêcher
l’émission du rapport en
spécifiant l’option −w.)
Vous pouvez favoriser ce processus si votre table de
montage est supportée via un fichier
/etc/mtab ou /etc/mnttab qui contient un
champs d’options en ajoutant un champ «
dev=xxxx » pour les points de montage qui
n’en possèdent pas dans leur
chaîne d’options.
La partie « xxxx » du champ est
la valeur hexadécimale du numéro
de périphérique du
système de fichiers. (Consultez le champ
st_dev de la sortie des fonctions lstat(2) et
stat(2) pour obtenir les valeurs
appropriées pour vos systèmes de
fichiers.) Voici un exemple provenant d’un fichier
/etc/mnttab sous Solaris 2.6 pour un
système de fichiers monté Ã
distance via NFS :
|
|
nfs ignore,noquota,dev=2a40001
|
|
|
Il y a un avantage à avoir des
entrées « dev=xxxx »
dans votre fichier de table de montage,
spécialement pour les systèmes de
fichiers qui sont montés à partir de
serveurs NFS distants. Quand un serveur distant se crashe et
que vous voulez identifier ses utilisateurs en
exécutant lsof sur l’un de ses
clients, lsof ne sera probablement pas capable
d’obtenir la sortie des fonctions lstat(2) et
stat(2) pour le système de fichiers.
S’il peut obtenir le numéro de
périphérique du
système de fichiers à partir de la table
de montage, il sera capable d’afficher les fichiers
ouverts sur le serveur NFS crashé.
Quelques dialectes qui n’utilisent pas de fichier
ASCII /etc/mtab ou /etc/mnttab pour la table
de montage peuvent tout de même fournir un
numéro de
périphérique alternatif dans leurs
tables de montage internes. Ils se composent de AIX, Apple
Darwin, DEC OSF/1, Digital UNIX, FreeBSD, NetBSD, OpenBSD et
Tru64 UNIX. Lsof sait comment obtenir le
numéro de
périphérique alternatif pour ces
dialectes, et l’utilise quand sa tentative de
lstat(2) ou stat(2) −er le
système de fichiers est
bloquée.
Si vous n’êtes pas certain que votre
dialecte supporte les numéros de
périphériques alternatifs pour les
systèmes de fichiers présents dans
sa table de montage, utilisez cette incantation de
lsof pour voir si elle rapporte des
numéros de
périphériques alternatifs :
|
|
Recherchez parmi les messages d’avertissement
concernant les fichiers sur la sortie d’erreur
standard, ceux qui commencent par « assuming
"dev=xxxx" from ... ».
|
CACHE DE NOMS DU NOYAU
|
Lsof est capable d’examiner le cache de noms
du noyau ou d’utiliser d’autres
mécanismes du noyau (p.ex. la fonction
tag_to_path() ADVFS 4.x sous Digital UNIX ou Tru64 UNIX)
sous certains dialectes pour la plupart des types de
systèmes de fichiers, AFS exclus, et d’en
extraire des composants de noms de chemin
récemment utilisés. (Les
recherches de chemin dans le système de fichiers
AFS n’utilisent pas le cache de noms du noyau.)
Lsof rapporte les chemins complets qu’il
trouve dans la colonne NAME. Si lsof ne peut
rapporter tous les composants d’un chemin, il rapporte
dans la colonne NAME le nom du système de
fichiers, suivi par une espace, deux caractères
« - », une autre espace, et les
composants du nom qu’il a localisé,
séparés par le
caractère « / ».
Quand lsof est exécuté
en mode répétition −
c.−Ã −d. lorsque l’option
−r est spécifiée
− la faculté qu’il a Ã
rapporter les composants de noms de chemin pour le
même fichier peut varier de
période en période. Cela est
dû au fait que les autres processus
s’exécutant peuvent faire supprimer par
le noyau des entrées de son cache de noms et
les remplacer par d’autres.
L’utilisation par lsof du cache de noms du
noyau pour identifier les chemins des fichiers peut
l’amener à rapporter incorrectement des
composants dans certaines circonstances. Cela peut se
produire quand le cache de noms du noyau utilise les
numéros de
périphérique et de noeud comme
clé (p.ex. Linux et SCO OpenServer) et
qu’une clé est
réutilisée sur un
systèmes de fichiers subissant des changements
fréquents est
réutilisée. Si le noyau du
dialecte UNIX ne purge pas l’entrée
d’un fichier du cache de noms quand il est
supprimé, lsof peut trouver une
référence vers la mauvaise
entrée dans le cache. La FAQ lsof (La
section FAQ vous donne son emplacement.) dispose de
plus d’informations sur cette situation.
Lsof peut rapporter les composants de noms de
chemin pour ces dialectes :
|
|
BSDI BSD/OS
|
|
|
DC/OSx
|
|
|
DEC OSF/1, Digital UNIX, Tru64 UNIX
|
|
|
FreeBSD
|
|
|
HP−UX
|
|
|
Linux
|
|
|
NetBSD
|
|
|
NEXTSTEP
|
|
|
OpenBSD
|
|
|
Reliant UNIX
|
|
|
Caldera OpenUNIX
|
|
|
SCO OpenServer
|
|
|
SCO UnixWare
|
|
|
Solaris
|
|
|
Lsof ne peut rapporter les composants de noms de
chemin pour ces dialectes :
|
|
Si vous voulez savoir pourquoi lsof ne peut
rapporter les composants de noms de chemin pour certains
dialectes, voyez la FAQ lsof (La section FAQ
vous donne son emplacement).
|
FICHIER DE CACHE DES PÃRIPHÃRIQUES
|
L’examen de tous les membres de l’arbre de
noeuds /dev (ou /devices) avec les fonctions
stat(2) peut prendre du temps. Qui plus est,
l’information dont a besoin lsof −
numéro de
périphérique, numéro
d’i−noeud, et chemin − change
rarement.
Par conséquent, lsof maintient
normalement un fichier texte ASCII servant de cache
d’information sur /dev (ou /devices)
(exception : les systèmes Linux utilisant le
mécanisme /proc lsof où
cela n’est pas nécessaire.)
L’administrateur du système local qui
construit lsof peut contrôler la
façon dont le chemin du fichier de cache des
périphériques est
formé, en utilisant les
possibilités suivantes :
|
|
Chemin provenant de l’option −D ;
|
|
|
Chemin provenant d’une variable
d’environnement ;
|
|
|
Chemin global au système ;
|
|
|
Chemin personnel (défaut) ;
|
|
|
Chemin personnel, modifié par une
variable
|
|
|
d’environnement.
|
|
|
Consultez la sortie des options d’aide
−h, −D? ou −? pour
obtenir l’état courant du support du
cache des périphériques. La sortie
d’aide liste le chemin du fichier de cache des
périphériques en mode lecture par
défaut qui est utilisé par
l’invocation actuelle de lsof. La sortie de
l’option −D? liste les chemins de
fichiers de cache des
périphériques dans les modes
lecture seule et écriture, le nom de toutes les
variables d’environnement pertinentes, et le format du
fichier de cache des périphériques
personnel.
Lsof peut détecter que le fichier de
cache des périphériques actuel a
été modifié
accidentellement ou avec malveillance par des
contrôles
d’intégrité, qui incluent le
calcul et la vérification d’une somme de
Contrôle de Redondance Cyclique (CRC) de 16
bits sur le contenu du fichier. Quand lsof
perçoit qu’il y a un problème
avec le fichier, il émet un avertissement et
essaie de supprimer le fichier de cache actuel et de
créer une nouvelle copie, mais seulement dans
un chemin où le processus peut
légitimement écrire.
Le chemin à partir duquel un processus lsof
peut essayer de lire un fichier de cache de
périphériques ne peut pas
être le même que le chemin dans
lequel il peut légitimement
écrire. Ainsi, quand lsof prend
conscience qu’il doit mettre à jour le fichier
de cache des périphériques, il
peut choisir, pour l’écriture, un chemin
différent de celui utilisé pour la
lecture d’une version incorrecte ou
périmée.
Si elle est disponible, l’option −Dr
empêchera l’écriture
d’un nouveau fichier de cache des
périphériques. (Cela est toujours
disponible quand c’est
spécifié sans argument de nom de
chemin.)
Quand un nouveau périphérique
est ajouté au système, il se peut
que le fichier de cache des
périphériques doive
être recréé. Puisque
lsof compare le mtime du fichier de cache des
périphériques avec les mtime et
ctime du répertoire /dev (ou
/devices) , il détecte habituellement
qu’un nouveau périphérique a
été ajouté ; dans ce
cas, lsof émet un message
d’avertissement et essaie de reconstruire le fichier
de cache des périphériques.
à chaque fois que lsof écrit
un fichier de cache des
périphériques, il fixe sa
propriété à l’UID
réel du processus exécutant, et
ses modes de permission à 0600, ne permettant ainsi
la lecture et l’écriture que par le seul
propriétaire du fichier.
|
PERMISSIONS DE LSOF QUI AFFECTENT L’ACCÃS AU FICHIER DE CACHE DES PÃRIPHÃRIQUES
|
Deux permissions de l’exécutable
lsof affectent sa faculté Ã
accéder aux fichiers de cache de
périphériques. Les permissions
sont établies par l’administrateur local
quand lsof est installé.
La première permission et la plus rare est
setuid−root. Elle entre en vigueur quand lsof
est exécuté ; son UID effectif est
alors root, alors que son UID réel
(c.−Ã −d. celui de l’utilisateur
connecté) ne l’est pas. La distribution
de lsof recommande que les versions pour ces
dialectes soient exécutées dans le
mode setuid−root :
|
|
DC/OSx 1.1 pour les systèmes Pyramid
|
|
|
Reliant UNIX 5.4[34] pour les systèmes
Pyramid
|
|
|
La seconde permission plus ordinaire est setgid. Elle
entre en vigueur quand le numéro
d’IDentification de Groupe (GID) effectif du processus
lsof compte parmi ceux qui peuvent
accéder aux
périphériques mémoire
du noyau − p.ex. « kmem »,
« sys » ou « system
».
Un processus lsof qui possède la
permission setgid délaisse habituellement la
permission après avoir
accédé aux
périphériques mémoire
du noyau. Quand il fait cela, lsof peut permettre des
formations de chemin de cache de
périphériques plus permissives. La
distribution de lsof recommande que les versions pour
ces dialectes soient exécutées
dans le mode setgid et délaissent leur
permission setgid.
|
|
AIX 4.3.[23], 5L et 5.1
|
|
|
Apple Darwin 1.[23] et 1.4 pour les systèmes
Power Macintosh
|
|
|
BSDI BSD/OS 4.1 pour les systèmes Ã
base de processeurs Intel
|
|
|
DEC OSF/1, Digital UNIX, Tru64 UNIX 4.0 et 5.[01]
|
|
|
FreeBSD 4.[234] et 5.0 pour les systèmes
à base de processeurs Intel
|
|
|
HP−UX 11.00
|
|
|
NetBSD 1.5 pour les systèmes
d’architecture Alpha, Intel et SPARC
|
|
|
NEXTSTEP 3.[13] pour les architectures NEXTSTEP
|
|
|
OpenBSD 2.[89] et 3.0 pour les systèmes
à base de processeurs Intel
|
|
|
Caldera OpenUNIX
|
|
|
SCO OpenServer Release 5.0.[46] pour les
systèmes à base de processeurs Intel
|
|
|
SCO UnixWare 7.1.1 pour les systèmes
à base de processeurs Intel
|
|
|
Solaris 2.6, 7, 8 et 9 BETA
|
|
|
(Note : lsof sous AIX 5L et supérieur
a besoin de la permission setuid−root si
l’option −X est
utilisée.)
Lsof ne supporte pas de cache de
périphériques pour les dialectes
suivants, et les permissions ainsi données
à l’exécutable ne
s’appliquent pas au fichier de cache des
périphériques.
|
|
Linux 2.1.72 et supérieur (lsof
utilisant /proc)
|
|
CHEMIN DU FICHIER DE CACHE DES PÃRIPHÃRIQUES PROVENANT DE
L’OPTION −D
|
L’option −D fournit des moyens
limités de spécification du chemin
du fichier de cache des
périphériques. Sa fonction
? rapportera les chemins de fichiers de cache des
périphériques dans les modes
lecture seule et écriture qu’utilisera
lsof.
Quand les fonctions −D b, r et
u sont disponibles, vous pouvez les utiliser pour
requérir que le fichier de cache soit construit
dans un endroit spécifique
(b[chemin]) ; lu mais non reconstruit
(r[chemin]) ; ou lu et reconstruit
(u[chemin]). Les fonctions b, r
et u sont interdites dans certaines circonstances.
Elles sont interdites quand le processus lsof
s’exécute dans le mode setuid−root.
Le chemin spécifié par
l’option r est toujours accessible en lecture
seule, même quand il est disponible.
Les fonctions b, r et u sont
également interdites quand le processus
lsof tourne dans le mode setgid et que lsof ne
délaisse pas la permission setgid. (Voyez la
section PERMISSIONS DE LSOF QUI AFFECTENT
L’ACCÃS AU FICHIER DE CACHE DES
PÃRIPHÃRIQUES pour une liste des
implémentations qui ne délaissent
normalement pas leur permission setgid.)
Une fonction supplémentaire de
−D , Ã savoir i (pour ignorer),
est toujours disponible.
Quand elle est disponible, la fonction b indique
à lsof de lire de l’information sur un
périphérique à partir du
noyau avec la fonction stat(2) et de construire un
fichier de cache des périphériques
dans le chemin indiqué/
Quand elle est disponible, la fonction r indique
à lsof de lire le fichier de cache des
périphériques, mais de ne pas le
mettre à jour. Quand un argument chemin accompagne
−Dr, celui−ci nomme le chemin du fichier
de cache des périphériques. La
fonction r est toujours disponible quand elle est
spécifiée sans argument de nom de
chemin. Si lsof ne tourne pas dans le mode
setuid−root et abandonne sa permission setgid, un
argument de nom de chemin peut accompagner la fonction
r.
Quand elle est disponible, la fonction u indique
à lsof d’essayer de lire et
d’utiliser le fichier de cache des
périphériques. S’il ne peut
pas lire le fichier, ou s’il juge que le contenu du
fichier est incorrect ou périmé,
il lira l’information à partir du noyau, et
essaiera d’écrire une version mise
à jour du fichier de cache des
périphériques, mais uniquement
dans un chemin qu’il considère comme
légitime pour les UIDs effectif et
réel du processus lsof.
|
CHEMIN DU CACHE DES PÃRIPHÃRIQUES PROVENANT D’UNE VARIABLE
D’ENVIRONNEMENT
|
Le second choix de lsof pour le fichier de cache
des périphériques est le contenu
de la variable d’environnement LSOFDEVCACHE. Il
évite ce choix si le processus tourne dans le
mode lsof setuid−root, ou si l’UID
réel du processus est root.
Une restriction supplémentaire
s’applique au fichier de cache des
périphériques obtenu Ã
partir de la variable d’environnement LSOFDEVCACHE :
lsof n’écrira pas de fichier de
cache de périphériques dans le
chemin si le processus lsof ne délaisse
pas sa permission setgid. (Voyez la section PERMISSIONS
DE LSOF QUI AFFECTENT L’ACCÃS AU FICHIER DE
CACHE DES PÃRIPHÃRIQUES pour une liste des
implémentations qui ne délaissent
pas leur permission setgid.)
L’administrateur du système local peut
désactiver l’utilisation de la variable
d’environnement LSOFDEVCACHE ou changer son nom lors
de la construction de lsof. Consultez la sortie de
−D? pour connaître le nom de la
variable d’environnement.
|
FICHIER DE CACHE DES PÃRIPHÃRIQUES GLOBAL
|
L’administrateur du système local peut
choisir d’avoir un fichier de cache des
périphériques global lors de la
construction de lsof. Le fichier sera
généralement construit via une
procédure d’administration
spéciale du système lorsque le
système est démarré ou
quand le contenu de /dev ou /devices) change.
S’il est défini, c’est le
troisième choix chemin du fichier de cache des
périphériques de lsof .
Vous pouvez savoir si un fichier de cache des
périphériques global est en
vigueur sur votre installation locale en examinant la sortie
de l’option d’aide de lsof −
c.−Ã −d. la sortie de l’option
−h ou −?.
Lsof n’écrira jamais par
défaut dans le fichier de cache des
périphériques global. Il doit
explicitement être nommé via une
fonction −D dans une procédure
appartenant à root. Une fois que le fichier a
été écrit, la
procédure doit remplacer ses modes de
permission par 0644 (lecture et écriture par le
propriétaire, lecture par le groupe, lecture
pour les autres).
|
CHEMIN DU CACHE PERSONNEL DES PÃRIPHÃRIQUES (DÃFAUT)
|
Le chemin du cache des
périphériques par
défaut de la distribution de lsof est
enregistré dans le répertoire
personnel de l’UID réel qui
exécute lsof. On ajoute au
répertoire personnel un second composant de
chemin de la forme .lsof_nomhôte.
C’est le quatrième choix de lsof
lors de la recherche du chemin du fichier de cache des
périphériques, et est
habituellement le défaut. Si un fichier de
cache global des périphériques a
été défini quand
lsof a été construit, ce
quatrième choix sera utilisé quand
lsof ne trouve pas le fichier de cache global des
périphériques. C’est la
seule fois où lsof utilise deux
chemins lors de la lecture du fichier de cache des
périphériques.
La partie nomhôte du second
composant est le nom de base de l’hôte
exécutant, comme renvoyé par
gethostname(2). Le nom de base est
défini par les caractères
précédant le premier
« . » dans la sortie de
gethostname(2) , ou toute la sortie de
gethostname(2) si elle ne contient aucun
« . ».
Le fichier de cache des
périphériques global appartient
à l’ID utilisateur et n’est accessible en
lecture et écriture que par l’ID de
l’utilisateur seul, c.−Ã −d. que
ses modes sont 0600. Chaque ID utilisateur distinct sur un
hôte donné qui
exécute lsof possède un
fichier de cache des périphériques
distinct. La partie nomhôte du chemin
permet de distinguer les fichiers de cache de
périphériques d’un
répertoire personnel monté via NFS
dans lequel les fichiers de cache de
périphériques sont
écrits à partir
d’hôtes différents.
Le fichier de cache des
périphériques personnel
formé par cette méthode
représente un fichier de cache de
périphériques que lsof
essaiera de lire et d’écrire, qu’il
existe ou pas, ou que son contenu soit incorrect ou
périmé ou pas.
L’option −Dr sans un argument de nom
de chemin empêchera
l’écriture d’un nouveau fichier de
cache de périphériques.
L’option −D? listera la
spécification de format pour la construction du
fichier de cache de périphériques
personnel. Les conversions utilisées dans la
spécification de format sont
décrites dans le fichier 00DCACHE de la
distribution de lsof.
|
CHEMIN DE CACHE DE PÃRIPHÃRIQUES PERSONNEL MODIFIÃ
|
Si cette option est définie par
l’administrateur du système local quand
lsof est construit, le contenu de la variable
d’environnement LSOFPERSDCPATH peut être
utilisé pour ajouter un composant du chemin du
fichier de cache de périphériques
personnel.
Le contenu de la variable d’environnement
LSOFPERSDCPATH est inséré dans le
chemin à l’endroit
spécifié par
l’administrateur du système local avec la
conversion « %p » de la
spécification de format HASPERSDC du fichier
d’en−tête machine.h du
dialecte. (Il est placé juste après
le répertoire personnel dans la distribution
par défaut de lsof .)
Ainsi, par exemple, si LSOFPERSDCPATH contient
« LSOF », le
répertoire personnel est «
/Homes/abe », le nom d’hôte
est « vic.cc.purdue.edu », et le
format HASPERSDC est le défaut («
%h/%p.lsof_%L »), le chemin du fichier de cache
de périphériques personnel
modifié est :
|
|
/Homes/abe/LSOF/.lsof_vic
|
|
|
La variable d’environnement LSOFPERSDCPATH est
ignorée quand le processus lsof tourne
dans le mode setuid−root ou quand l’UID
réel du processus est root.
Lsof n’écrira pas dans un
chemin du fichier de cache de
périphériques personnel
modifié si le processus lsof ne
délaisse pas sa permission setgid. (Voyez la
section PERMISSIONS DE LSOF QUI AFFECTENT
L’ACCÃS AU FICHIER DE CACHE DES
PÃRIPHÃRIQUES pour une liste des
implémentations qui ne délaissent
normalement pas leur permission setgid.)
Si, par exemple, vous voulez créer un
sous−répertoire de chemins de fichiers de
cache de périphériques personnels
en utilisant la variable d’environnement
LSOFPERSDCPATH pour le nommer, et si lsof ne
délaisse pas sa permission setgid, vous devrez
permettre à lsof de créer des
fichiers de cache de périphériques
dans le chemin personnel standard, et ensuite les
déplacer dans votre
sous−répertoire avec des commandes
shell.
L’administrateur du système local peut
: désactiver l’option lors de la
construction de lsof , remplacer le nom de la
variable d’environnement LSOFPERSDCPATH par un autre
nom, modifier le format HASPERSDC pour inclure le composant
du chemin personnel à un autre endroit, ou exclure
entièrement le composant de chemin personnel.
Consultez la sortie de l’option −D? pour
connaître le nom de la variable
d’environnement et la spécification du
format de HASPERSDC.
|
DIAGNOSTICS
|
Les erreurs sont identifiées par des
messages émis dans le fichier d’erreur
standard.
Lsof retourne un (1) si des erreurs ont
été
détectées, ce qui inclut les
échecs de localisation de noms de commandes, de
noms de fichiers, d’adresses ou de fichiers Internet,
de noms de connexion, de fichiers NFS, de PIDs, de PGIDs ou
d’UIDs qu’on lui a demandé de
lister. Si l’option −V est
spécifiée, lsof indiquera
les éléments de recherche
qu’il n’a pas réussi Ã
lister.
Il renvoie zéro (0) si aucune erreur
n’a été
détectée et s’il a
été capable de lister un tant soit
peu d’information sur les arguments de recherche
spécifiés.
Quand lsof ne peut accéder Ã
/dev (ou /devices) ou à l’un de
ses sous−répertoires, ou obtenir de
l’information sur un fichier qui y est
présent avec stat(2), il
émet un message d’avertissement et
continue. Le fait que lsof émette des
messages d’avertissement au sujet de fichiers de
/dev (ou /devices) inaccessibles est
indiqué dans sa sortie d’aide −
requise avec les options −h ou −?
− avec le message :
|
|
Inaccessible /dev warnings are enabled.
|
|
|
(Les avertissements sur
l’inaccessibilité de /dev sont
autorisés). Le message d’avertissement
peut être supprimé avec
l’option −w. Il peut
également être
supprimé par l’administrateur
système quand lsof a
été compilé en
définissant WARNDEVACCESS. Dans ce cas, la
sortie des options d’aide inclura le message :
|
|
Inaccessible /dev warnings are disabled.
|
|
|
(Les avertissements sur
l’inaccessibilité de /dev sont
désactivés). Les messages
d’avertissement concernant des
périphériques inaccessibles
disparaissent habituellement après que
lsof ait créé un fichier de
cache des périphériques en
état de fonctionnement.
|
EXEMPLES
|
Pour un jeu d’exemples plus étendu,
documenté plus complètement, lisez
le fichier 00QUICKSTART de la distribution de
lsof.
Pour lister tous les fichiers ouverts, utilisez :
|
|
Pour lister tous les fichiers ouverts Internet, x.25
(HP−UX), et de domaine UNIX, utilisez :
|
|
Pour lister tous les fichiers réseau IPv4
utilisés par le processus de PID 1234, utilisez
:
|
|
En supposant que le dialecte UNIX supporte IPv6, pour ne
lister que les fichiers réseau IPv6, utilisez
:
|
|
Pour lister tous les fichiers utilisant un protocole
quelconque sur les ports 513, 514 ou 515 de
l’hôte wonderland.cc.purdue.edu,
utilisez :
|
|
lsof -i @wonderland.cc.purdue.edu:513-515
|
|
Pour lister tous les fichiers utilisant un protocole
quelconque sur n’importe quel port de
mace.cc.purdue.edu (cc.purdue.edu est le domaine par
défaut), utilisez :
|
|
Pour lister tous les fichiers ouverts sous le nom de
connexion « abe », ou par
l’ID utilisateur 1234, ou par le processus 456, 123 ou
789, utilisez :
|
|
lsof -p 456,123,789 -u 1234,abe
|
|
Pour lister tous les fichiers ouverts sur le
périphérique /dev/hd4, utilisez
:
|
|
Pour trouver le processus qui a ouvert /u/abe/foo,
utilisez :
|
|
Pour envoyer un SIGHUP au processus qui a ouvert
/u/abe/bar, utilisez :
|
|
kill -HUP ‘lsof -t /u/abe/bar‘
|
|
Pour trouver tous les fichiers ouverts, fichiers de
socket de domaine UNIX inclus, de nom /dev/log,
utilisez :
|
|
Pour trouver les processus ayant des fichiers ouverts sur
le système de fichiers NFS nommé
/nfs/point/montage dont le serveur est inaccessible,
et en supposant que votre table de montage fournit le
numéro de
périphérique pour
/nfs/point/montage , utilisez :
|
|
lsof -b /nfs/point/montage
|
|
Pour effectuer la recherche
précédente en supprimant les
messages d’avertissement, utilisez :
|
|
lsof -bw /nfs/point/montage
|
|
Pour ignorer le fichier de cache des
périphériques, utilisez :
|
|
Pour obtenir la sortie des champs de PID et de nom de
commande pour chaque processus, le descripteur du fichier,
le numéro de
périphérique du fichier, et le
numéro d’i−noeud du fichier pour
chaque fichier de chaque processus, utilisez :
|
|
Pour lister les fichiers de descripteurs 1 et 3 de chaque
processus exécutant la commande lsof
pour l’ID de connexion « abe
» toutes les 10 secondes, utilisez :
|
|
lsof -c lsof -a -d 1 -d 3 -u abe -r10
|
|
Pour lister le répertoire de travail courant
des processus exécutant une commande qui est
longue d’exactement 4 caractères, et qui
possède un « o » ou un
« O » comme troisième
caractère, utilisez cette forme
d’expression régulière de
l’option −c c :
|
|
lsof -c /^..o.$/i -a -d cwd
|
|
Pour trouver un fichier socket IPv4 Ã partir de
son adresse numérique en notation
pointée associée, utilisez :
|
|
Pour trouver un fichier socket IPv6 (quand le dialecte
UNIX supporte IPv6) Ã partir de son adresse
numérique en notation
double−pointée associée,
utilisez :
|
|
lsof -i@[0:1:2:3:4:5:6:7]
|
|
Pour trouver un fichier socket IPv6 (quand le dialecte
UNIX supporte IPv6) Ã partir d’une adresse
numérique en notation
double−pointée associée qui
comprend beaucoup de zéros − p.ex.
l’adresse loop−back − utilisez :
|
BOGUES
|
Puisque lsof lit la mémoire du noyau
lors de la recherche de fichiers ouverts, des changements
rapides dans la mémoire du noyau peuvent
produire des résultats
imprévisibles.
Quand un fichier détient de multiples
verrous d’enregistrements, le caractère
d’état de verrouillage (qui suit le
descripteur de fichier) est dérivé
du test de la première structure de verrou, et
pas d’une combinaison quelconque des verrous
d’enregistrement individuels qui pourraient
être décrits par de multiples
structures de verrous.
Lsof ne peut rechercher des fichiers ayant des
permissions d’accès limitatives par
nom à moins qu’il n’ait
été installé avec la
permission setuid−root. Sinon, il est
limité à la recherche de fichiers pour
lesquels l’utilisateur ou le groupe set-GID (le cas
échéant) a la permission
d’accès.
L’affichage de l’adresse de destination
d’un socket brut (raw socket) (p.ex. pour ping)
dépend du système
d’exploitation UNIX. Certains dialectes stockent
l’adresse de destination dans le bloc de
contrôle du socket brut, d’autres ne le
font pas.
Lsof ne peut pas toujours représenter
les numéros de
périphériques Solaris de la
même manière que ls(1). Par
exemple, les numéros de
périphériques mineur et majeur que
rapportent les fonctions lstat(2) et stat(2)
pour le répertoire sur lequel les fichiers de
CD-ROM sont montés (typiquement /cdrom)
ne sont pas les mêmes que ceux qu’il
rapporte pour le périphérique sur
lequel les fichiers de CD-ROM sont montés
(typiquement /dev/sr0). (Lsof rapporte les
numéros des répertoires.)
Le support pour les systèmes de fichiers
/proc n’est disponible que pour les dialectes
BSD, DEC OSF/1, Digital UNIX et Tru64 UNIX, Linux, et les
dialectes dérivés de SYSV R4
− p.ex. FreeBSD, NetBSD, OpenBSD, Solaris,
UnixWare.
Certains éléments de fichiers
de /proc − numéro de
périphérique, numéro
d’i−noeud, et taille de fichier − sont
indisponibles dans certains dialectes. La recherche de
fichiers dans un système de fichier /proc
peut requérir que le nom du chemin complet soit
spécifié.
Aucun descripteur de fichier texte (txt)
n’est affiché pour les processus Linux.
Toutes les entrées des fichiers
situés ailleurs que dans le
répertoire de travail courant, le
répertoire racine, et les descripteurs de
fichiers numériques sont
classifiés comme étant des
descripteurs mem.
Lsof ne peut rechercher de tubes
nommés DEC OSF/1, Digital UNIX et Tru64 UNIX
par leur nom, car leur implémentation noyau de
lstat(2) renvoie un numéro de
périphérique incorrect pour un
tube nommé.
Lsof ne peut rapporter complètement ou
correctement les verrous sous HP−UX 9.01, 10.20 et
11.00 à cause d’un accès
insuffisant aux données de noyau, ou Ã
des erreurs dans les données du noyau. Voyez la
FAQ lsof (La section FAQ vous donne son
emplacement.) pour les détails.
Le type de fichier AIX SMT est une fabrication. Il est
constitué de structures de fichier dont le type
(15) n’est pas défini dans le fichier
d’en−tête AIX
/usr/include/sys/file.h. Une façon de
créer de telles structures de fichier est de
lancer des clients X avec la variable d’environnement
DISPLAY fixée à « :0.0
».
L’option +|−f[cfgGn]
n’est pas supportée sous les
systèmes Linux utilisant le
mécanisme /proc, car lsof ne lit alors
pas les structures noyau depuis la mémoire du
noyau.
|
ENVIRONNEMENT
|
Lsof peut accéder aux variables
d’environnement suivantes.
|
|
LSOFDEVCACHE
|
|
définit le chemin d’un fichier de
cache de périphériques. Voyez la
section CHEMIN DE CACHE DE PÃRIPHÃRIQUES
PROVENANT D’UNE VARIABLE D’ENVIRONNEMENT
pour plus d’informations.
|
|
LSOFPERSDCPATH
|
|
définit le composant médian
d’un chemin de fichier de cache de
périphériques personnel
modifié. Voyez la section CHEMIN DE CACHE DE
PÃRIPHÃRIQUES PERSONNEL MODIFIÃ
pour plus d’informations.
|
FAQ
|
Les questions fréquemment
posées (la foire aux questions) et leurs
réponses (une FAQ) sont disponibles dans le
fichier 00FAQ de la distribution de lsof.
Ce fichier est également disponible via ftp
anonyme sur vic.cc.purdue.edu dans le
répertoire pub/tools/unix/lsofFAQ.
L’URL est :
|
|
ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/FAQ
|
FICHIERS
|
/dev/kmem
|
|
périphérique de
mémoire virtuelle du noyau
|
|
/dev/mem
|
|
périphérique de
mémoire physique
|
|
/dev/swap
|
|
périphérique de pagination du
système
|
|
.lsof_nomhôte
|
|
fichier de cache de
périphériques de lsof (Le
suffixe, nomhôte, est le premier
composant du nom d’hôte
retourné par gethostname(2).)
|
AUTEURS
|
Lsof a été
écrit par Victor A. Abell
<abe@purdue.edu> de l’Université de
Purdue. Beaucoup d’autres personnes ont
contribué à lsof. Elles sont
reprises dans le fichier 00CREDITS de la distribution
de lsof.
|
DISTRIBUTION
|
La dernière distribution de lsof est
disponible via ftp anonyme sur vic.cc.purdue.edu.
Vous trouverez la distribution lsof dans le
répertoire pub/tools/unix/lsof.
Vous pouvez également utiliser cette URL
:
|
|
ftp://vic.cc.purdue.edu/pub/tools/unix/lsof
|
|
Lsof dispose également de miroirs
ailleurs. Quand vous accédez Ã
vic.cc.purdue.edu et que vous vous rendez dans le
répertoire pub/tools/unix/lsof , vous
obtiendrez une liste de quelques sites miroirs. Le
répertoire pub/tools/unix/lsof contient
également une liste plus complète
dans le fichier mirrors. Utilisez les miroirs
prudemment − ils n’ont pas tous la
dernière révision de
lsof.
Certains exécutables lsof
précompilés sont disponibles sur
vic.cc.purdue.edu, mais leur utilisation est
découragée − il vaut mieux
que vous construisiez le vôtre à partir
des sources. Si vous pensez devoir utiliser un
exécutable
précompilé, lisez s’il vous
plaît les avertissements qui apparaissent dans
les fichiers README des sous−répertoires
de pub/tools/unix/lsof/binaries et dans les fichiers
00* de la distribution.
On peut trouver plus d’informations sur la
distribution de lsof dans son fichier
README.lsof_<version>. Si vous avez
l’intention d’obtenir la distribution de
lsof et de la construire, lisez s.v.p.
README.lsof_<version> ainsi que les autres
fichiers 00* de la distribution avant d’envoyer des
questions à l’auteur.
|
VOIR AUSSI
|
Les versions 2 et 3 de lsof ont
été testées sous des
dialectes UNIX plus anciens. Elles sont disponibles via ftp
anonyme sur vic.cc.purdue.edu dans le
répertoire pub/tools/unix/lsof/OLD.
access(2), awk(1), crash(1), fattach(3C), ff(1),
fstat(8), fuser(1), gethostname(2), isprint(3), kill(1),
lstat(2), modload(8), mount(8), netstat(1), ofiles(8L),
perl(1), ps(1), readlink(2), stat(2), uname(1).
|
TRADUCTION
|
Frédéric Delanoy, 2002.
|
|
lsof(8) |
|
|