$ strace -f time
execve("/usr/bin/time", ["time"], [/* 66 vars */]) = 0
brk(0) = 0x84c000
...
Strace напрямую вызывает программу для трассировки. Он не использует оболочку для выполнения дочерних команд, если только дочерняя команда не является вызовом оболочки. Примерная последовательность событий здесь следующая:
strace
с аргументами strace, -f, time. / usr / bin / time
с аргументом «время». После шага 1 исходный процесс оболочки простаивает, ожидая выхода strace. Он ничего не делает активно. И даже если бы он что-то делал, strace не отслеживает это, поэтому его активность не будет отображаться в выводе strace.