【发布时间】:2015-04-03 14:35:36
【问题描述】:
我有脚本定期运行 nbackup 工具进行数据库备份。我注意到如果在 nbackup 运行时重新启动 Windows,数据库最终会处于“备份锁定”状态。是否有可能强制 Windows 不终止 nbackup 进程?
我注意到,如果我从 WindowsForm 应用程序运行 nbackup,在 FormClosing 事件中阻止 Windows 关闭,nbackup 进程会成功完成。但是我可以依赖观察到的行为,即进程在启动时按顺序停止/终止吗?
我会欣赏不基于 WinForms 的解决方案。或者,我希望确认应用程序按启动顺序关闭。因此,如果我的 guiless 进程是从 WindowsForms 应用程序启动的,如果 WindowsForms 应用程序将 Cancel 设置为 true,它将不会被杀死。
【问题讨论】:
-
C# Cancel Windows Shutdown 的可能重复项
-
没有真正复制。如果可能的话,我不会使用 WInformApp 来防止 Windows 关机。此外,如果我使用 WinForm 应用程序作为脚本的主机,我需要确保由此 WIndowsApp 启动的进程不会被终止。这不是关于停止 WinForm 应用程序的关闭。这更多是关于在 guiless 进程运行时防止关闭。
-
Windows 没有设置“在随机应用程序 X 运行时防止 Windows 关闭”,因此您必须自己编写代码或使用它。或许可以向 Nbackup 寻求支持?
-
我认为您无法停止关机,但您可以(通过工作)发现 Windows 正在请求关机,然后您的程序可以中止备份并重置数据库状态。