Cómo encontrar el nombre de usuario de PID en Linux
17
¿Me pueden ayudar a encontrar el nombre de usuario del PID? En algún momento mi servidor recibió mucha carga Cuando toco -c, ni siquiera puedo encontrar el nombre de usuario del PID que / que está causando carga en el servidor.
Estábamos experimentando un problema de carga del servidor debido al proceso masivo de php, por lo que tuve esta pregunta, luego podemos encontrarlos usando 'lsof -p xxxx'.
Ranjithkumar T
Respuestas:
31
Me sorprende que nadie haya puesto esto todavía:
Prueba la -popción del pscomando.
Por ejemplo, si tiene PID 1234, ejecute:
ps -u -p 1234
(Se -uagregó para incluir el nombre de usuario en la salida)
Puede usar grepo awk, etc. para extraer la información que desee.
Eras un tic más rápido que yo. ¿Te estás despertando antes? Dependiendo de la distribución de Linux, ps u 1234(Debian) o simplemente ps 1234(Android con Busybox) también funciona.
ott--
5
/proc/processID/status tendrá la información sobre la identificación del usuario que puede usar para encontrar el nombre de usuario.
¿Qué quieres exactamente? En mi sistema, si ejecuto 'top -c' obtengo:
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]
Entonces, el PID (identificador de proceso / tarea) es la primera columna, y la cuenta de usuario con la que se ejecuta el proceso es la segunda columna
Respuestas:
Me sorprende que nadie haya puesto esto todavía:
Prueba la
-p
opción delps
comando.Por ejemplo, si tiene PID
1234
, ejecute:(Se
-u
agregó para incluir el nombre de usuario en la salida)Puede usar
grep
oawk
, etc. para extraer la información que desee.fuente
ps u 1234
(Debian) o simplementeps 1234
(Android con Busybox) también funciona./proc/processID/status
tendrá la información sobre la identificación del usuario que puede usar para encontrar el nombre de usuario.Esto hace lo mismo:
Reemplace YOUR_PROCESS_ID con su número de ID de proceso.
fuente
Obtenga solo nombre de usuario de un PID:
También puedes combinarlo con a
pgrep
. En este ejemplo, mostramos todos los nombres de usuario que ejecutan algún.php
archivo:Encuentre solo un nombre de usuario que ejecute cierto proceso único:
fuente
¿Qué quieres exactamente? En mi sistema, si ejecuto 'top -c' obtengo:
Entonces, el PID (identificador de proceso / tarea) es la primera columna, y la cuenta de usuario con la que se ejecuta el proceso es la segunda columna
fuente
Creo que el camino más corto es:
El
/proc/<pid>/loginuid
archivo tiene el número uid del usuario que ejecuta el proceso;id -nu
lee uid de stdin y devuelve un nombre de usuario.fuente