справочная страница strace говорит:
В Linux, как бы это ни было интересно, трассировка процесса инициализации запрещена.
Я проверил то же самое, и это не позволяет:
$ strace -p 1
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Почему это невозможно? Даже на справочной странице ptrace то же самое говорится о трассировке процесса инициализации. Разве эти инструменты не безопасны или просто процесс инициализации считается слишком особенным, чтобы никакие другие процессы (strace/ptrace) не могли сигнализировать об этом.
init
есть что-то, что делает его не совсем истинным процессом из-за того, как он порождается (например, у него нет родительского процесса и, возможно, других частей процесса). метаданные процесса нечетны по тем же причинам), что означает, чтоstrace
должен был бы иметь кучу особых случаев обработки вещей, чтобы работать сinit
, и на сегодняшний день никто не видел достаточной ценности в трассировкеinit
для реализации кода. - person twalberg   schedule 26.01.2016strace
работает. Чтобы отследить процесс, он становится родителем этого процесса и может посылать ему сигналы. Наверное, так возиться сinit
нельзя. - person brokenfoot   schedule 26.01.2016