nautilus 复制文件时的实际进程名称是什么?

use*_*107 3 process nautilus cp

我正在将一些文件从外部驱动器复制到运行 Ubuntu 的桌面。我可以看到显示复制过程的“文件操作”对话框。

我如何在ps aux | grep命令中找到这个特定的进程?我以为这是一些cp命令,但没有cp运行命令!那么这种复制是如何工作的呢?请提供任何指示。

Gil*_*il' 5

进程名称是nautilus. Nautilus 包含自己的代码来复制文件,该代码在 nautilus 进程内执行,而不是在子进程中。

您可以通过使用strace记录 Nautilus 的系统调用来亲自查看 Nautilus 运行的子进程

strace -f -o /tmp/nautilus.strace nautilus
Run Code Online (Sandbox Code Playgroud)

clone系统调用创建新的进程(它的推广fork)。该execve系统调用运行在同一个进程中的另一个项目。因此,运行另一个程序需要clone跟在execve. 您可以快速查看 Nautilus 执行(或尝试)的程序

grep execve /tmp/nautilus.strace
Run Code Online (Sandbox Code Playgroud)

您会发现 Nautilus 为某些事情创建了子进程,例如预览某些类型文件的内容,但它自己进行文件复制。