Pour Windows, je pense que Process Explorer vous montre tous les threads d’un processus.
Existe-t-il un utilitaire de ligne de commande similaire pour Linux pouvant afficher des détails sur tous les threads générés par un processus donné?
Je pense que j'aurais dû être plus clair. Je ne veux pas voir la hiérarchie des processus, mais une liste de tous les threads générés par un processus particulier
Voir cette capture d'écran
Comment cela peut-il être réalisé sous Linux? Merci!
command-line
shell
process
Lazer
la source
la source
Réponses:
L'outil classique
top
affiche les processus par défaut, mais il est possible d'indiquer les discussions à l'aide de laH
touche de fonction ou-H
de l'option de ligne de commande. Il y a aussi htop , qui est semblable àtop
mais a le défilement et les couleurs; il montre tous les threads par défaut (mais cela peut être désactivé).ps
a également quelques options pour afficher les discussions, en particulierH
et-L
.Il existe également des outils d'interface graphique pouvant afficher des informations sur les threads, par exemple qps (un simple wrapper d'interface graphique
ps
) ou conky (un moniteur système avec de nombreuses options de configuration).Pour chaque processus, de nombreuses informations sont disponibles,
/proc/12345
où se12345
trouve l'ID du processus. Des informations sur chaque thread sont disponibles,/proc/12345/task/67890
où se67890
trouve l'ID de thread du noyau. C'est làps
,top
et d' autres outils obtenir leurs informations.la source
htop
ne semble pas me montrer les fils. Ils mentionnent laH
clé comme moyen de permuter entre afficher et masquer les discussions, mais cela fonctionne toujours comme clé d' aide ...h
pour obtenir de l'aide, en majusculesH
pour afficher / masquer les discussions.Liste des discussions sous Linux
Réponses actuelles
Je voudrais préciser que chaque réponse ici vous fournit exactement ce que vous avez spécifié, une liste de tous les threads associés à un processus, cela peut ne pas être évident
htop
car, par défaut, répertorie tous les threads du système, pas seulement le processus maistop -H -p <pid>
fonctionne mieux par exemple:En remarque, le thread avec
-90
est en fait un thread en temps réel.mais
Il y a aussi une autre option qui est vraie CLI
ps -e -T | grep <application name or pid>
-e
montre tous les processus-T
liste tous les sujets|
dirige la sortie vers la commande suivantegrep
cela filtre le contenuVoici un exemple:
Chacun de ceux-ci a le même PID afin que vous sachiez qu'ils sont dans le même processus.
la source
sed
place degrep
vous pouvez conserver le titre avec un code trivial:ps -e -T | sed -n '1p; /clementine/p;'
man top
dit que c'est un alias pourLWP
etTID
, alors que LWP = processus léger et TID = identificateur de fil.htop , une version de top curses, dispose d'une option d'affichage pour afficher tous les threads de chaque processus dans une vue arborescente. En commençant
htop
et en appuyant, vous F5obtiendrez:la source
Vous pouvez essayer d'utiliser:
Par exemple:
Chaque fil a son propre PID.
la source
Les deux outils standard pour afficher les informations de processus sont
ps
ettop
(ethtop
qui est similaire / amélioré ).Remarques:
ps -m
,ps m
,ps H
...)Vue en temps réel de tout ou processus, en utilisant
top -H
Visualisation instantanée de tous les processus et threads, en utilisant
ps -eLf
Informations de fil d'un processus, en utilisant
ps -T
(note: utilisez l'une des options
-C command
ou-p PID
sélectionnez le processus)Détails des informations de thread d'un processus, en utilisant custom
ps
la source
Tu peux essayer
top -H -p <pid>
.Mais notez que sur certaines versions d'Unix, l'option -H n'est pas disponible en
top
commande.la source
-H
; Linux utilise les outils GNU (y comprisps
), contrairement à UNIX. (Ceci est, bien sûr, une généralisation ...)Cela doit afficher les threads en tant que processus. Rappelez-vous également que tous les threads d'un multi-thread doivent avoir le même PID. Linux le fait en créant des groupes de threads. Le premier thread est le leader du groupe et son PID sera tgid (thread groupID) du groupe de thread.
Vous pouvez connaître le PID réel et le statut des threads en utilisant le système de fichiers / proc. Pour cela, vous pouvez également vérifier le PID en utilisant ps, puis exécuter la commande suivante:
Ensuite, vérifiez les pids / tgid des threads et exécutez la commande suivante:
la source
Cela vous donnera la liste des threads associés à votre processus (ie process_id) [Utilisé sous Ubuntu. Il est possible que l'option -H ne soit pas disponible sur certaines versions de Linux.]
la source
La commande ci-dessus indique le nombre de threads en cours d'exécution pour un pid de processus spécifique si pour un processus java
la source
Je cherchais la même chose et pouvais proposer le script bash suivant.
C’est toujours un travail en cours, je le mettrai à jour à mesure que j’améliorerai le script.
Je ne suis pas un expert Unix, je suis sûr que certains experts peuvent l'écrire en 2 lignes, avec une meilleure qualité, mais mon intention est de fournir une solution de travail aux autres.
mise à jour avec filtre et information de processus
la source