Процесс инициализации strace (PID 1) в Linux

справочная страница strace говорит:

В Linux, как бы это ни было интересно, трассировка процесса инициализации запрещена.

Я проверил то же самое, и это не позволяет:

$  strace -p 1
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted

Почему это невозможно? Даже на справочной странице ptrace то же самое говорится о трассировке процесса инициализации. Разве эти инструменты не безопасны или просто процесс инициализации считается слишком особенным, чтобы никакие другие процессы (strace/ptrace) не могли сигнализировать об этом.


person brokenfoot    schedule 26.01.2016    source источник
comment
askubuntu.com/questions/143561/   -  person Jeyaram    schedule 26.01.2016
comment
эта ссылка не говорит о процессе инициализации. Я знаю, что если процесс запускается с помощью gdb/valgrind, его невозможно отследить. Но это другой случай.   -  person brokenfoot    schedule 26.01.2016
comment
Просто полуобоснованное предположение, но вполне возможно, что в процессе init есть что-то, что делает его не совсем истинным процессом из-за того, как он порождается (например, у него нет родительского процесса и, возможно, других частей процесса). метаданные процесса нечетны по тем же причинам), что означает, что strace должен был бы иметь кучу особых случаев обработки вещей, чтобы работать с init, и на сегодняшний день никто не видел достаточной ценности в трассировке init для реализации кода.   -  person twalberg    schedule 26.01.2016
comment
@twalberg: У меня нет цели отслеживать init, просто любопытно, почему его нельзя отследить. Я проверил, что strace работает. Чтобы отследить процесс, он становится родителем этого процесса и может посылать ему сигналы. Наверное, так возиться с init нельзя.   -  person brokenfoot    schedule 26.01.2016


Ответы (1)


sudo strace -p 1 у меня работает (вам нужны привилегии root для strace )
Была работа разрешить отладку init. В версии 2.4.37 вы не можете присоединить на init, но в некоторых ядрах это условие убрали - я нашел 3.8 ядро

Изменить: на моем Kubuntu 15.10 нет On Linux, exciting as it would be, tracing the init process is forbidden. в strace man. Обновленный человек?

person Roman Zaitsev    schedule 27.01.2016
comment
Небольшое уточнение: strace вообще не нужны права суперпользователя, но они нужны ему для отслеживания процессов других пользователей. - person nponeccop; 12.03.2016