- Каждая символическая ссылка также является файлом.
for f in os.listdir(path): do_something_with(f)
неверно, если вы не ваш cwd path
.
Кроме того, проверьте вывод этого фрагмента:
import os
base = "/proc/%d" % os.getpid()
for f in os.listdir(base):
f = os.path.join(base, f)
print "%-40s %5s %5s %5s" % (f, os.path.isfile(f), os.path.islink(f), os.path.isdir(f))
Теперь о первой части вопроса. Когда дочерний процесс завершается, он становится зомби, если для этого потомка не вызывается wait(2)
. Это означает, что если в вашей программе нет необычного обработчика SIGCHLD
, вы можете безопасно делать все, что захотите, с каталогом /proc/<pid>
вашего ребенка до вызова wait(2)
.
Вы также можете попробовать отправить SIGSTOP
вашему ребенку, сделать нужный снимок, а затем отправить SIGCONT
.