LINUX.ORG.RU
ФорумAdmin

Закрыть файлы lsof

 


0

1

Такой вопрос. Можно ли закрыть некоторые файлы, которые отображает lsof, не останавливая процесс, который их открыл, и как это сделать?

★★★★★

Конечно. Цепляешься к процессу отладчиком, вызываешь close() на нужные дескриптопы, отцепляешься.

bigbit ★★★★★
()
Ответ на: комментарий от bigbit

интересная тема. На stackoverflow пишут чтобы избежать ошибки unknown return type добавлять возвращаемый тип (gdb) call (int)close(3)

у меня gdb выдает для процесса evince с открытым pdf 5 lwp. Я их пробовал закрывать ничего не вышло с возвратом -1. Наоборот при повторном коннекте еще один добавился

anonymous
()
Ответ на: комментарий от wandrien

не хаос, а ж с глюками…
это необходимый этап познания…

pfg ★★★★★
()
Ответ на: комментарий от sunny1983

А что, это было не очевидно? errno типа EBADFD/EBADF - это писец который не игнорируют.

Я думал ты прикалываешься.

Возможно переоткрыть /dev/null вместо файла - более гуманный вариант если в файл только пишут.

vel ★★★★★
()
Ответ на: комментарий от sunny1983

Ты закрыл файловый дескриптор через который программа работала с файлом. Любое последующее действие с этим файловым дескриптором вызывает ошибку и она неисправимая. Действие программы на такую ошибку - аварийно завершиться.

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

Если не секрет, что за программа и что за файл ты хотел от нее оторвать?

vel ★★★★★
()
Ответ на: комментарий от sunny1983

Нет, задача у тебя так и не озвучена. Озвучено что попало, показавшееся тебе направлением решения.

t184256 ★★★★★
()
Ответ на: комментарий от sunny1983

Конечно же, закрывать можно только те дескрипторы, с которыми процесс больше никогда работать не будет.

Например, у процесса утек файловый дескриптор, он забыл его закрыть, а файл так и остался открытым…

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

Если же ты закрыл рабочие дескрипторы, то… КАК вообще в голову могла прийти мысль закрыть дескрипторы, с которыми работает процесс???

bigbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.