когда япроцесс, который не имеет дескриптор файла
ls proc/[pid]/fd
иногда я не получаю выход, кажется, что нет ни одного файла дескриптора в этом файле.
Что это значит, когда процесс не имеет файлового дескриптора?
когда япроцесс, который не имеет дескриптор файла
ls proc/[pid]/fd
иногда я не получаю выход, кажется, что нет ни одного файла дескриптора в этом файле.
Что это значит, когда процесс не имеет файлового дескриптора?
Рассматриваемый процесс является скорее deamon - демон будет обработан intentionally close standard file descriptors, чтобы avoid hanging onto their resources. (Они будут также chdir
в корневой каталог, вызвать дополнительный fork()
и выполнить ряд более неясными операций по той же причине).
У многих демонов все еще есть некоторые FD, открытые, однако, в локальные сокеты, журналы и т. Д. –
@larsmans Согласовано - на самом деле, большинство из них это делают. Но, учитывая программу без открытых файлов, я бы предположил, что это какой-то демон. – user4815162342
Спасибо за ваш ответ! Извините, я не могу +1, потому что я здесь новый. –
'/ proc/[pid]/fd' - это ** каталог **, а не файл. – devnull
Это означает, что процесс не имеет открытых файлов. Я предполагаю (не проверял исходный код), что 'cron' закроет свои fds, прежде чем переходить в режим ожидания. –
@larsmans тогда почему/когда процесс не нужен stdin, stdout и stderr? спасибо за ваш ответ –