Я хотел бы лучше понять, какие программы изменяют определенный файл 1 sup> во время перезагрузки. Могу ли я что-то настроить для регистрации информации такого рода?
Опрос, для которого процессы в настоящее время открывают файл, работать не будет, поскольку файл может быть открыт только в течение нескольких миллисекунд.
Можно ли использовать трассировку ядра для сбора этой информации?
1 sup> /var/lib/alsa/asound.state
, если вам интересно, но мне интересно в общем решении.
Это может быть достигнуто с помощью инструмента fuser
. В нем перечислены идентификаторы всех процессов, обращающихся к конкретному файлу. Попробуйте,
fuser -u .
... чтобы увидеть, какие файлы «открыты» в вашем домашнем каталоге, идентификатор процесса и имя пользователя, владеющего этими процессами.
В вашем случае, я не уверен, что это будет полезно, так как вы пытаетесь контролировать перезагрузку. Я подозреваю, что rc.local выполнится слишком поздно при перезагрузке, чтобы захватить что-нибудь полезное, скажем, с
watch -n 0.5 "fuser -u /var/lib/alsa/asound.state"
Хмм - я только что попытался вывести это в файл и вывод не очень красивый. Но если это можно решить, то, возможно, чего-то можно достичь с помощью cron?