Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Список открытых файлов


Автор: xxxdevxxx 19.9.2013, 12:46
Добрый день!

Есть скрипт, который порождает свою же копию каждые 5 минут через system в режиме фонового исполнения с использованием вывода в сторонний фаил, чтобы не ждать ответа.
Код

system("perl xxx.pl > var/temp/fork 2>&1 &");

Так вот, родитель успешно завершает работу, потомок работает, но у каждого нового потомка количество открытых файлов увеличивается
Код

ls -l  /proc/PID_OF_CHILD/fd | wc -l


Пробовал закрывать STDIN, STDOUT, STDERR, все-равно увеличивается количество открытых файлов.

Вопрос, как узнать какие открыты дескрипторы в данный момент?!

Заранее благодарен!

Автор: xxxdevxxx 19.9.2013, 14:00
Разобрался
Код

ls -l  /proc/PID_OF_CHILD/fd

В каждом новом процессе добавляется открытый сокет!
Код

dr-x------ 2 xxx xxx 0 Sep 19 05:56 ./
dr-x------ 8 xxx xxx 0 Sep 19 05:56 ../
lr-x------ 1 xxx xxx 64 Sep 19 05:56 0 -> /dev/null
l-wx------ 1 xxx xxx 64 Sep 19 05:56 1 -> /dev/null
lrwx------ 1 xxx xxx 64 Sep 19 05:56 10 -> socket:[3326216319]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 11 -> socket:[3326228879]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 12 -> socket:[3326259839]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 13 -> socket:[3326271328]
l-wx------ 1 xxx xxx 64 Sep 19 05:56 2 -> /dev/null
lrwx------ 1 xxx xxx 64 Sep 19 05:56 3 -> socket:[3326098995]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 4 -> socket:[3326068592]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 5 -> socket:[3326139400]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 6 -> socket:[3326140596]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 7 -> socket:[3326174616]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 8 -> socket:[3326166295]
lrwx------ 1 xxx xxx 64 Sep 19 05:56 9 -> socket:[3326185470]


Как мне их закрыть? и почему они при каждом вызове system увеличиваются?!

Автор: xxxdevxxx 19.9.2013, 17:55
Вопрос по другому, как мне понять с чему относятся данные сокеты, например, к mysql, еще к чему то ... ?

Автор: Loki 22.9.2013, 03:05
readlink
Цитата

Вопрос по другому, как мне понять с чему относятся данные сокеты, например, к mysql, еще к чему то ... ? 

по номеру порта

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)