作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个用托管语言 (.NET Framework v4.0) 编写的 Windows 服务,目前正在运行。
出于某种原因,我能够在服务运行时重命名服务主要可执行文件。我怀疑该文件在服务运行时被 Windows 锁定,但事实并非如此。更有趣的是,重命名后它仍然存在于任务管理器中。
我不是在提示这是可能的,但我想知道为什么。有人对此有解释吗?
最佳答案
取自this answer on superuser ,和 How can we overwrite EXE files while users are running them? ,
未独占锁定的可执行文件可以重命名。 Windows 服务管理器获取服务可执行文件的文件句柄,只要服务运行它就会保持打开状态,并且完全不受重命名的影响。它不会锁定目录条目本身。因此可执行文件可以被其他进程读取,文件的目录条目可以重命名。
影响:
建议:
关于windows - 为什么我可以在运行时重命名 Windows 服务可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42851917/
我是一名优秀的程序员,十分优秀!