используйте
readlink /proc/<pid>/fd/* | sort -u > /tmp/process-<pid>.out
, чтобы создать файл со списком всех файлов, открытых процессом с PID <pid>
.затем используйте comm
(1) для поиска общих файлов, как показано ниже:
comm -12 /tmp/process-<pid1>.out /tmp/process-<pid2>.out
Обратите внимание, что в этом списке будут перечислены все файлы, используемые этими программами.
если вы знаете, что конкретные файловые дескрипторы, используемые программой, например, 3,4,5,9,11,12, замените первую команду на:
readlink /proc/<pid>/fd/{3,4,5,9,11,12} | sort -u > /tmp/process-<pid>.out
Если вы не знаете файлдескрипторы, и вы хотите предположить, что все файловые дескрипторы, которые открыты для чтения (включая stdin), являются входными файлами, вам придется сделать что-то более умное, прочитав /proc/<pid>/fdinfo/<file-descriptor>
, который печатает поле flags
, которое имеетэта информация.