J'exécute la commande suivante sur mon serveur Ubuntu
root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace
Il semble pendre indéfiniment. Chaque fois que cela se produisait sous AIX, j’obtenais simplement le PID du processus incriminé et disais
$ procstack <pid_of_stuck_process>
et il montrait tout le reste du processus. Existe-t-il un équivalent de procstack
linux / ubuntu?
/proc/pid/wchan
et laWCHAN
colonne enps -l
sortie oups -o wchan
pour le haut de cette pile. (laps
partie fonctionne sur de nombreux Unices, mais n’est pas toujours (souvent) utile en soi).Sur la plupart des systèmes Unix, vous pouvez utiliser GDB .
Il y a aussi
pstack
(pas un utilitaire standard, vous devrez probablement l'installer manuellement). Cela ressemble à un équivalent d'AIXprocstack
. Mais sur mon compte Wheezy amd64 de Debian, il semble que ce soit toujours une erreur. Sur i386, pour un programme compilé sans symboles de débogage, il n’imprime aucun symbole, pas même à partir des bibliothèques pour lesquelles des symboles de débogage sont disponibles.Vous pouvez également utiliser
strace -p1234
pour voir les appels système effectués par le processus.la source
pstack
semble jeter des erreurs à chaque fois. Quelque chose commeroot@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
semble être cassé sur amd64, je remarque la même chose sur Debian Wheezy amd64.pstack
imprimera une trace de pile d’un processus en cours pour vous.gstack
est un équivalent commun sipstack
n'est pas disponible / ne supporte pas votre distro / arch.la source