Obtenha o pid ( pidof process
ou top
ou ps
, etc) do processo e use strace -p <pid>
. Se você vir polling ou continuamente chamar os mesmos syscalls repetidamente, provavelmente ficará preso em um loop infinito. Para determinar se está preso em um loop infinito, você precisa usar os recursos de tempo do strace (embora isso seja apenas uma suposição).
Se você acabou de fazer um antigo strace -p <pid>
, você só verá os syscalls, mas não os dados sendo passados entre eles; para ver esses dados, especifique também o parâmetro -s
. Se o processo se forçar, você não verá nenhum de seus filhos no strace, portanto, certifique-se de especificar -f
para ver quais syscalls os filhos estão fazendo.
Você também pode querer ver quanto tempo demora entre syscalls; Para fazer isso, você pode usar -tt
e -r
e -T
. Se houver polling, pode ser completamente normal se a espera de um arquivo for criada.