Файлы, открытые процессом XYZ, можно найти с помощью команды
ls -l /proc/PID/fd
Есть ли в любом случае, что можно сделать более интерактивным способом, как tail
автоматическое обновление каждые х секунд?
Файлы, открытые процессом XYZ, можно найти с помощью команды
ls -l /proc/PID/fd
Есть ли в любом случае, что можно сделать более интерактивным способом, как tail
автоматическое обновление каждые х секунд?
Попробуйте watch
команду:
watch -n 10 ls -l /proc/$$/fd
Смотреть приятно.
Вы можете использовать старую школу while:
while :
do
ls -l /proc/$$/fd
sleep 10
done
watch
находится в пакете procps в системах на основе Debian и в RPPS для систем, производных от RedHat.
Если вы хотите видеть каждый файл при его открытии, вы можете отфильтровать его с помощью
strace
. Например:источник
-y
и-f
если вы пытаетесь отладить что-то, работающее в оболочке. Просто-f
введите PID оболочки и последует за любыми вилками.Вы могли бы объединить
lsof
иwatch
.Например
watch "lsof -p 1234"
, даст вам список всех открытых файлов pid 1234 каждые 2 секунды. Вы можете изменить некоторые параметры в соответствии с вашими потребностями.источник
-r
возможности дляlsof
. Поэтому яwatch
выполнялlsof
каждые две секунды.Я создал файл bash, в котором я записывал вывод команды в файл. Файл создан на основе текущей даты. Здесь я подсчитываю количество открытых файлов.
источник