Что-то назвало, 'Project1' бросит красный флаг в меня. Обычно это было бы струной, которую Вы поменяете при создании программы. Возможно, это было сделано в VB6.
Мое предложение было бы, если Ваша команда не создала его, избавьтесь от него.
Я говорю это из-за подобия Эри этому случаю.
Я действительно люблю 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
иерархия содержит богатство информации обо всех рабочих процессах. Стоящий ввода по абсолютному адресу вокруг в!
Если у Вас есть команда lsof доступный [который большинство *отклоняет разновидности, делают], Вы использовали бы:
lsof -p NNN
для списка файлов открывают процессом NNN. Я не использовал BSD в некоторое время, но из памяти термофиксатор является близкой параллелью к lsof.
Я не, несомненно, в команде найду, что cwd процесса, но на Linux cwd является symlinked в/proc каталог процесса т.е./proc/NNN/cwd.
если Вы знаете процессы PID, можно просто выйти
lsof | grep YOURPID
Быстрый и легкий помнить.
или
lsof -c yourprogramexecutable
Это также может помочь, используя файловую систему proc, вы можете:
readlink proc_sample/proc/<YOUR_PID>/fd/*
Не забудьте заменить
на желаемый идентификатор процесса.