如何通过Linux shell命令关闭文件描述符

Eri*_*ric 13 linux shell file-descriptor

/proc/pid/fd/,文件描述符太多.我可以使用shell命令关闭这些文件描述符吗?

Tho*_*ele 33

只要您具有执行此操作的权限,您就可以关闭其他正在运行的进程的fd.

首先,找到PID.

然后,启动gdb并附加到进程:

gdb -p 1598
Run Code Online (Sandbox Code Playgroud)

然后,在要关闭的fd上调用close系统调用:

(gdb) call close(999)
$1 = 0
Run Code Online (Sandbox Code Playgroud)

如果文件描述符是泄露的,那么程序将永远不会尝试再次使用它,并且它不应该导致任何问题.但是,该程序最有可能存在错误.


Ign*_*ams 5

您可以n在bash中关闭当前进程的FD ,如下所示:

exec n<&-
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.但它用于关闭当前进程的FD(bash进程).你知道任何关闭特定过程FD的方法吗? (3认同)