Comment trouver le nom d'utilisateur de PID sous Linux
17
Pouvez-vous m'aider à trouver le nom d'utilisateur du PID, Quelque temps mon serveur a reçu une charge élevée. Quand je top -c, je ne trouve même pas le nom d'utilisateur du PID qui / qui cause la charge sur le serveur.
Nous rencontrions un problème de chargement du serveur en raison du processus php en vrac, de sorte que j'ai eu cette question, nous pouvons ensuite les trouver en utilisant 'lsof -p xxxx'.
Ranjithkumar T
Réponses:
31
Je suis surpris que personne n'ait encore mis cela en place:
Essayez l' -poption de la pscommande.
Par exemple, si vous avez un PID 1234, exécutez:
ps -u -p 1234
(Le a -uété ajouté pour inclure le nom d'utilisateur dans la sortie)
Vous pouvez utiliser grepou awk, etc. pour extraire les informations que vous souhaitez.
Tu étais une tique plus rapide que moi. Tu te réveilles plus tôt? Selon la distribution Linux, ps u 1234(Debian) ou simplement ps 1234(Android avec Busybox) fonctionne également.
ott--
5
/proc/processID/status aura les informations sur l'ID utilisateur que vous pouvez utiliser pour trouver le nom d'utilisateur.
Que voulez-vous exactement? Sur mon système, si je lance 'top -c' j'obtiens:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2873 matt 20 0 3022m 1.6g 1.6g S 22 21.6 2245:42 /usr/lib/virtualbox/VirtualBox --comment ESX5-1 --startvm 4fd78ee9-739a-4d53-a0ce-4f9819ab9411 --no-startvm-errormsgbox
29764matt 20 0 2779m 1.4g 1.3g S 5 18.4 210:33.51 /usr/lib/virtualbox/VirtualBox --comment win2008-2 --startvm 202ec2b7-ae12-40e9-af76-2be429e553d7 --no-startvm-errormsgbox
17281root 20 0 0 0 0 S 2 0.0 0:05.90 [kworker/u:2]
Ainsi, le PID (identificateur de processus / tâche) est la première colonne, et le compte d'utilisateur sous lequel le processus s'exécute est la deuxième colonne
Réponses:
Je suis surpris que personne n'ait encore mis cela en place:
Essayez l'
-p
option de laps
commande.Par exemple, si vous avez un PID
1234
, exécutez:(Le a
-u
été ajouté pour inclure le nom d'utilisateur dans la sortie)Vous pouvez utiliser
grep
ouawk
, etc. pour extraire les informations que vous souhaitez.la source
ps u 1234
(Debian) ou simplementps 1234
(Android avec Busybox) fonctionne également./proc/processID/status
aura les informations sur l'ID utilisateur que vous pouvez utiliser pour trouver le nom d'utilisateur.Cela fait de même:
Remplacez YOUR_PROCESS_ID par votre numéro d'identification de processus.
la source
Obtenez uniquement le nom d'utilisateur d'un PID:
Vous pouvez également le combiner avec un
pgrep
. Dans cet exemple, nous montrons tous les noms d'utilisateurs exécutant un.php
fichier:Trouvez un seul nom d'utilisateur exécutant un certain processus unique:
la source
Que voulez-vous exactement? Sur mon système, si je lance 'top -c' j'obtiens:
Ainsi, le PID (identificateur de processus / tâche) est la première colonne, et le compte d'utilisateur sous lequel le processus s'exécute est la deuxième colonne
la source
Je pense que le chemin le plus court est:
Le
/proc/<pid>/loginuid
fichier a le numéro uid de l'utilisateur exécutant le processus;id -nu
lit uid depuis stdin et retourne un nom d'utilisateur.la source