为什么“一个叉子后面经常跟着一个 exec”?你不能在 UNIX 中创建一个新进程吗?
Windows 10 运行着许多奇怪的进程,我们不知道它们在做什么。
例如,“Runtime Broker.exe”任务被描述为有助于管理权限的进程。如何知道每个“Runtime Broker.exe”在做什么,它正在访问哪个注册表或它与哪个应用程序相关?
我在 WSL2 下的 Debian 中工作,但是因为我的项目文件存在于 Windows 文件系统中,所以我一直在通过 WSL 互操作使用 Git for Windows,并带有这样的 shell 函数:
git() {
case "$PWD" in
/mnt/*)
/mnt/c/Program\ Files/Git/bin/git.exe "$@"
;;
*)
/usr/bin/git "$@"
;;
esac
}
通常这很好用并且可以快速完成工作(比 git 从 VM 内部访问 repo 中的每个文件要快得多)。
但是,我注意到,很多时候,它最终会留下杂散的 git 进程。好吧,在我的 git 命令完成运行之后,我仍然有很多git.exe
只是坐在那里,有时仍然持有打开的文件句柄,但实际上并没有做任何事情。
它有时会导致后续 git 命令的执行速度明显变慢,工作树中的文件被阻止,并且假设最终可能导致 repo 损坏。
我已经确定,当我将 git 命令的长输出通过管道传输到WSLless
或head
WSL 时,通常会发生这种情况,例如
git log | less
git log | head -n 64
并非所有管道都像这样 - 例如,管道到cat
,nano -
或确实tail
正确终止了 git.exe。
是什么原因造成的,有没有办法解决它?
git version 2.33.0.windows.2
有没有办法检测 Windows 中进程正在更改的文件?
我创建了一个进程 - my_python_script.exe(我编译的 python 脚本),我想知道该进程使用 procmon.exe 或进程资源管理器等 Windows 工具更改了哪些文件。
在这篇文章中:Detect what process is changed a file on Windows 我发现正好相反(哪些进程更改了特定文件)。
但我想知道如何找到特定进程正在更改的所有文件。
谢谢你。