Estoy ejecutando el siguiente comando en mi servidor ubuntu
root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace
Parece colgar indefinidamente. Cada vez que esto sucedía en AIX, simplemente obtenía el PID del proceso ofensivo y decía
$ procstack <pid_of_stuck_process>
y solía mostrar toda la pila de llamadas del proceso. ¿Hay algún equivalente de procstack
en linux / ubuntu?
/proc/pid/wchan
y laWCHAN
columna en laps -l
salida ops -o wchan
para la parte superior de esa pila. (laps
parte funciona en muchos Unices, pero no siempre (a menudo) es útil en sí misma).En la mayoría de los sistemas Unix, puede usar GDB .
También existe
pstack
(no es una utilidad estándar, probablemente tendrá que instalarla manualmente). Parece un equivalente de AIXprocstack
. Pero en mi Debian wheezy amd64, parece que siempre se produce un error. En i386, para un programa compilado sin símbolos de depuración, no imprime ningún símbolo, ni siquiera de las bibliotecas para las que hay símbolos de depuración disponibles.También puede usar
strace -p1234
para ver las llamadas al sistema realizadas por el proceso.fuente
pstack
parece estar arrojando errores cada vez. Algo así comoroot@sarai:~# pstack 6312 6312: /usr/bin/python /usr/bin/twistd -n --uid=maas --gid=maas --pidfile=/run/maas-pserv.pid --logfile=/dev/null maas-pserv --conf... (No symbols found) crawl: Input/output error Error tracing through process 6312
pstack
parece estar roto en amd64, observo lo mismo en Debian wheezy amd64.pstack
imprimirá un seguimiento de la pila de un proceso en ejecución para usted.gstack
es un equivalente común sipstack
no está disponible / no es compatible con su distribución / arch.fuente