strace
Procesos y sistema
Uso
strace [-f] -p <pid>Imprime cada llamada al sistema que hace un proceso, y asi ves donde se atasca; la salida va a stderr, redirigela con `2>&1`, necesita permiso ptrace (normalmente sudo) y solo existe en Linux (macOS tiene dtruss).
Opciones habituales
| Opción | Significado |
|---|---|
| -p <pid> | Attach to a process that is already running. |
| -f | Follow child processes and threads too. |
| -e trace=openat,connect | Only the syscalls you care about. |
| -s 200 | Show 200 characters of each string instead of the default 32. |
| -o <file> | Write to a file, since output goes to stderr. |
| -c | A summary count per syscall instead of every line. |
| -tt | Timestamps with microseconds, to see where the time went. |
Ejemplos
strace -f -e trace=openat ./app 2>&1 | grep configFind which config file it actually reads.
sudo strace -p 1234 -s 200See what a stuck process is waiting on.
sudo dtruss -p 1234The macOS counterpart; needs elevated privileges and often SIP changes.
Qué se está ejecutando y qué se come la máquina. Identificarlo va antes de matarlo.
Cómo leerlo
- Los corchetes [ ] marcan una parte que puedes omitir.
- Los puntos suspensivos … indican que puedes poner varios.
- Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.
Preguntas
Q. ¿Qué hace strace?
Imprime cada llamada al sistema que hace un proceso, y asi ves donde se atasca; la salida va a stderr, redirigela con `2>&1`, necesita permiso ptrace (normalmente sudo) y solo existe en Linux (macOS tiene dtruss).
Q. ¿Cómo se escribe?
strace [-f] -p <pid> — los corchetes marcan lo que puedes omitir.
Q. ¿Cuántas opciones vale la pena saber?
Aquí van 7; la lista completa está en man strace. Este comando está en Procesos y sistema.
Comandos relacionados
página man: man strace