Questions tagged «open-files»

处理程序中当前打开的文件


2
文件描述符链接的可移植性
我一直想知道这一点,但从来没有花时间找出来,所以我现在就这样做-是使用便携式怎么这里显示的任一/proc/$$/fd/$N或/dev/fd/$N?我了解POSIX担保 /dev/null, /dev/tty, and /dev/console (尽管我是在阅读有关此答案的评论后的第二天才发现的),但是其他这些担保呢? 据我所知,它们很常见,但是我不能指望它们在哪些系统中找到?为什么不?找到一个比另一个更有可能吗?他们会总是表现出类似的属性吗? 我倾向于以各种方式广泛地使用这些设备,并且我想知道是否有机会尝试一下。 另外,上述问题应该被理解为仅是我想,我想知道,但是,因为我显然要问的第一个地方,我可能不知道最好在这方面,他们不应该被认为是严格要求答案。请告诉我,如果可以的话。

6
“ lsof”命令的替代方案?
在许多情况下,我必须使用的机器上未安装“ lsof”,但是非常需要lsof的“功能”(例如,在AIX上)。:\ 非Windows世界中是否有类似“ lsof”的应用程序? 更新:例如:我需要知道哪些进程使用“ / home / username”目录?

1
为什么打开文件中的file-nr和lsof计数不同?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 3年前关闭。 我突然遇到一个问题。我所有的应用程序和服务器运行正常,突然间我看到打开的文件数量激增。 我正在使用以下命令进行检查: cat /proc/sys/fs/file-nr 当我检查时显示为44544 0 128000,因此44544是打开的文件数。 但是当我使用此命令检查时- lsof | wc -l 它显示-28384。 那么哪一个是正确的呢? 我的最大打开文件数限制是65535 ulimit -a open files (-n) 65535 我想知道使用更多打开文件的前5个过程。我可以从中得到,lsof但是这里显示的计数与我上面提到的其他命令有很大不同。 我可以获取此命令计数的进程的详细信息cat /proc/sys/fs/file-nr吗? 根据下面提到的链接,它说我们不能, 如何显示打开的文件描述符,但不使用lsof命令 我周围有工作吗?我需要突然发现哪个进程开始使用更多打开的文件。 更新 抱歉麻烦你们了。我发现我正在做的错误是我没有从根目录检查lsof | wc -l。这就是我看到巨大差异的原因。 在文件-nr和lsof |的输出之间仍然存在差异。wc -l(从根目录开始)。lsof计数大于文件-nr计数。原因是,file -nr忽略了某些目录(lsof将其视为文件),这是我根据对Google本身的一番研究发现的。无论如何!谢谢大家的帮助!

2
如何找出正在写入STDOUT的进程?
我有两个正在运行的流程实例。其中之一就是“可惜!” 和打印错误不会停止到STDOUT。 我想杀死破裂的过程,但是我必须确保不要终止错误的过程。它们都是在大约同一时间启动的,使用top它们,我可以看到它们都使用了大约相同数量的内存和CPU。我似乎找不到任何指向哪个进程表现不佳的信息。 最安全的事情是弄清楚哪个进程/ pid正在写入STDOUT。 有什么办法吗?


3
重写现有文件,以便原子地将其替换为新版本,只有完全写入一次
我隐约记得在某些地方阅读某处曾经有一种打开现有文件进行写入的方式,它带有一个标志,要求内核使用旧版本(供其他进程访问以进行读取),直到“新版本已完全写入(fd已关闭),此后文件将显示为新版本。 换句话说,其他进程要么看到的是旧版本,要么看到的是新版本,而从来没有看到不完整的版本。 有知识的人可以为我提供参考吗?

7
什么在使用此网络套接字?
我正在尝试使用NTP更新我的计算机上的时间。但是,这给了我一个错误: host # ntpdate ntp1.example.org 10 Aug 12:38:50 ntpdate[7696]: the NTP socket is in use, exiting 错误“套接字正在使用”是什么意思?我如何查看该套接字在使用什么? 这是在我的CentOS 4.x系统上发生的,但我也在FreeBSD 7.x,Ubuntu 10.04和Solaris 10上看到了。

4
如何在Vim中从文件视图切换到目录列表?
我打开了一个目录vim some/dir。我可以在树中导航,但是一旦打开文件,我想知道如何关闭文件视图才能返回目录列表以导航到另一个文件。:wq是没有选择的,因为它关闭了整个vim会话。我猜有一个for模式,但是我不知道它叫什么,也不知道我如何启动它。 如何关闭文件到文件导航视图?

2
在Linux系统上打开文件的行为如何?
我只是将日志文件重命名为“ foo.log.old”,并假定应用程序将开始在“ foo.log”处写入新的日志文件。我很惊讶地发现它跟踪日志文件到其新名称,并不断在“ foo.log.old”中追加行。 在Windows中,我不熟悉这种行为-我不知道是否有可能实现它。如何在Linux中实现此行为?在哪里可以了解更多信息?

3
查看正在运行的进程的STDOUT重定向
如果我使用以下命令启动应用程序: /path/to/my/command >> /var/log/command.log 而且该命令不返回,是否有办法从另一个提示中查看STDOUT重定向设置为什么? 我正在寻找类似的东西 cat /proc/PID/redirects 要么 ps -??? | grep PID 但是任何方法都可以。

2
当我关闭文件描述符时会发生什么?
我正在尝试使用文件描述符获取整个图片。假设我有process1,它最初具有这些文件描述符: _process1_ | | | 0 stdin | | 1 stdout | | 2 stderr | |__________| 然后我关闭文件描述符1: close(1); 文件描述符1转换(指向)内核的Open Files Table中的stdout FILE结构。 使用上面的代码,文件描述符1从进程表中删除,该表变为: _process1_ | | | 0 stdin | | 2 stderr | |__________| 但是内核中会发生什么呢?stdoutFILE结构是否被释放?如果stdout是一个特殊文件(监视器)并且可能被其他进程使用,那怎么可能?只是普通文件(例如.txt)的FILE结构怎么样?如果其他进程正在使用该文件怎么办?

3
打开文件句柄死后会去哪里?
打开文件句柄后删除的文件会发生什么情况? 自从发现可以在MPlayer中播放视频文件并将其一直播放到最后时,我一直在想这个问题。它从哪里提取数据?它仍然来自硬盘吗?删除文件后,文件是否已复制到RAM? 如果它仍在硬盘驱动器上,那么当程序运行时从本质上未分配的空间读取内容时,如果我填满文件系统会发生什么情况?如果将其缓冲在RAM中,则刷新缓冲区会怎样? 如果该文件位于NFS共享上,该怎么办–它存储在服务器上吗?(这不是安全隐患吗?DoS通过大量打开的远程文件句柄进行DoS吗?) 做一个lsof -n |grep '(deleted)'有时产生有趣的结果; 如果我要升级换出共享库文件的程序包,则运行已在使用这些库的程序仍然可以使用它们,就好像什么都没有改变一样。 额外的问题:在这种情况下,有什么方法可以使数据从死角中恢复过来吗?

4
删除目录时出现“ ls”错误
我有两个弹壳。第一个位于目录A中。第二个删除目录A,然后重新创建它。当我回到第一个shell并输入时ls,输出为: ls: cannot open directory .: Stale file handle 为什么?我认为第一个外壳程序(在不存在的目录中保持打开状态的外壳程序)将在等待下一个命令时“冻结”,并且不会“意识到”该目录已被删除并重新创建。除了字符串以外,shell是否对它的当前工作目录保留“更深”的引用$PWD?

2
阅读“ / proc”以了解进程是否已打开端口
我需要知道是否使用给定PID的进程在不使用外部命令的情况下打开了端口。然后,我必须使用/proc文件系统。/proc/$PID/net/tcp例如,我可以读取文件并获取有关进程打开的TCP端口的信息。但是,在多线程进程上,该/proc/$PID/task/$TID目录还将包含一个net/tcp文件。我的问题是: 我需要遍历所有线程net/tcp文件,还是将线程打开的端口写入进程net/tcp文件。
13 linux  tcp  proc  open-files 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.