Как я могу сказать, какие файлы процесс имеет открытый?

Что-то назвало, 'Project1' бросит красный флаг в меня. Обычно это было бы струной, которую Вы поменяете при создании программы. Возможно, это было сделано в VB6.

Мое предложение было бы, если Ваша команда не создала его, избавьтесь от него.

Я говорю это из-за подобия Эри этому случаю.

6
задан 31 July 2009 в 18:50
5 ответов

Я действительно люблю lsof, но я думаю, что это - излишество для простого вопроса как это. /proc файловая система содержит все, что Вы хотите знать. Возможно, пример был бы лучшим:

# ps ax|grep tail
 7196 pts/4    S+     0:00 tail -f /var/log/messages
 8773 pts/0    R+     0:00 grep tail
# ls -l /proc/7196/cwd
lrwxrwxrwx 1 insyte insyte 0 2009-07-29 19:05 /proc/7196/cwd -> /home/insyte
# ls -l /proc/7196/fd
total 0
lrwx------ 1 insyte insyte 64 2009-07-29 19:05 0 -> /dev/pts/4
lrwx------ 1 insyte insyte 64 2009-07-29 19:05 1 -> /dev/pts/4
lrwx------ 1 insyte insyte 64 2009-07-29 19:02 2 -> /dev/pts/4
lr-x------ 1 insyte insyte 64 2009-07-29 19:05 3 -> /var/log/messages

Таким образом, как Вы видите, /proc/$PID каталог содержит символьную ссылку, названную "cwd", который связывает CWD процесса. То же верно для открытого filedescriptors, перечисленного в /proc/$PID/fd.

/proc/$PID иерархия содержит богатство информации обо всех рабочих процессах. Стоящий ввода по абсолютному адресу вокруг в!

16
ответ дан 2 December 2019 в 23:56

Если у Вас есть команда lsof доступный [который большинство *отклоняет разновидности, делают], Вы использовали бы:

lsof -p NNN

для списка файлов открывают процессом NNN. Я не использовал BSD в некоторое время, но из памяти термофиксатор является близкой параллелью к lsof.

Я не, несомненно, в команде найду, что cwd процесса, но на Linux cwd является symlinked в/proc каталог процесса т.е./proc/NNN/cwd.

12
ответ дан 2 December 2019 в 23:56
  • 1
    На Ubuntu lsof идет с lsof пакетом. Я don' t думают это it' s установленный по умолчанию. –  innaM 30 July 2009 в 10:55

если Вы знаете процессы PID, можно просто выйти

lsof | grep YOURPID

Быстрый и легкий помнить.

или

lsof -c yourprogramexecutable
3
ответ дан 2 December 2019 в 23:56
  • 1
    What' s неправильно с lsof-p PID? –  innaM 30 July 2009 в 10:56
  • 2
    Ничего. It' s только, что канал grep врезаются в мой мозг в течение по крайней мере 15 лет теперь :) –  Sven♦ 30 July 2009 в 12:29

Попробуйте lsof, если он установлен в Вашей системе

D

1
ответ дан 2 December 2019 в 23:56

Это также может помочь, используя файловую систему proc, вы можете:

readlink proc_sample/proc/<YOUR_PID>/fd/*

Не забудьте заменить на желаемый идентификатор процесса.

0
ответ дан 26 March 2020 в 19:47

Теги

Похожие вопросы