问题标签 [shutdown]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1973 浏览

c# - 确定哪个应用程序阻止关闭

与 Windows Vista 不同,当 Windows XP 关闭时,它不会告诉您哪个程序请求不要关闭。这使 Windows 仍在运行,并且不会告诉您阻止关机的程序。

据我了解,Windows 发送WM_QUERYENDSESSION到所有应用程序。如果任何应用程序向函数返回 0,则停止关闭。

我想知道是否有一种方法可以从程序中捕获返回值并确定 Windows XP 没有关闭的原因。

谢谢菲尔

0 投票
2 回答
3417 浏览

java - 从 Servlet 关闭 / 取消部署 tomcat

我在 Tomcat 中有一个加载关键数据的初始化 servlet。有时有必要在某些错误中中止启动。

我如何在不调用的情况下优雅地关闭已部署的应用程序/整个应用程序服务器System.exit(1)

我想避免通过端口调用关闭 servlet,因为我的安装中没有配置它。

可能有一些任务需要在 web.xml 中定义的关闭时从侦听器运行

0 投票
4 回答
45279 浏览

java - java web应用程序的关闭钩子

我最好在 java web 应用程序停止或 tomcat 停止时保存一些数据。如何才能做到这一点?编辑:如果我使用 jvm 关闭钩子有什么缺点吗?

0 投票
1 回答
201 浏览

wrapper - JavaServiceWrapper:应用程序不等待关闭

我有一个应用程序可以生成工作线程并在工作线程中处理文件。在应用程序关闭请求中,我希望应用程序仅在工作线程完成处理当前文件(如果它正在处理文件)时关闭。我正在使用 JavaServiceWarapper 来管理我的应用程序。

我添加了关闭钩子,通知工作线程在收到关闭请求时不要开始处理新文件。

处理文件永远不会超过 30 秒,我将超时设置为 60 秒,只是为了安全起见。

出于某种原因,当我触发停止时,我的应用程序立即关闭并且不等待工作线程完成。工作线程收到关闭请求,但应用程序立即退出(并且不等待 60 秒)

我有一些重要的设置 wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp wrapper.adviser=FALSE wrapper.debug=FALSE wrapper.disablerestarts=FALSE wrapper.jvmexit.timeout=60 wrapper.requestthreaddumponfailedjvmexit=TRUE .timeout=60 wrapper.signal.mode.hup=FORWARD wrapper.startup.timeout=300 wrapper.usesystemtime=FALSE wrapper.ping.timeout=120

任何人都可以帮助我解决我正在做的错误。

0 投票
3 回答
10154 浏览

c# - 使用 .NET 获取上次 Windows 关闭事件的日期时间

有没有办法找出系统上次关闭的时间?

我知道有一种方法可以使用WMI使用Win32_OperatingSystem命名空间中的LastBootUpTime属性找出上次启动时间。

有没有类似的东西可以找出上次关机时间?

谢谢。

0 投票
0 回答
1095 浏览

hook - Winlogon:资源管理器在注销期间终止后如何运行应用程序?

视窗 XP/VISTA/7

在 explorer.exe 终止后,如何在用户注销过程中运行应用程序?

目的是阻止关闭,但在资源管理器终止后运行的应用程序。

当然可以在 vista 中使用 ShutdownBlockReasonCreate 临时阻止关机,或者在 XP 中通过 WM_QUERYENDSESSION 取消它。但是,这两种方法都发生在 Explorer 终止之前的用户会话期间。问题是如何让应用程序在资源管理器终止并阻止关闭后运行。

这在服务中是不可能的,因为在 VISTA/7 中,如果用户选择了关闭/重新启动,服务似乎无法在用户注销后阻止关闭。(内核似乎终止了服务,并且服务本身不能像用户应用程序那样阻止关闭?)

WinLogon 究竟如何以及何时终止 explorer.exe?似乎它等到所有/任何其他应用程序终止并停止阻止关闭,然后它终止资源管理器?

WinLogon 在最终关闭桌面/会话之前是否等待 explorer.exe 关闭?

我已经考虑过,例如尝试为终止进程的 API 挂钩 NTDLL 并拦截资源管理器的终止,但不清楚 Winlogon 如何或为什么会等待而不是继续关闭。

所有这一切的目的是找到一种在 Vista/7 关闭期间运行可执行文件的方法,它能够阻止关闭只要它喜欢,只有在资源管理器退出并且所有文件和资源已被资源管理器和所有以该用户身份运行的其他应用程序。

在 XP 中,这可以通过简单地取消 WM_QUERYENDSESSION 中的关闭然后重新发出 ExitWindowsEx (LOGOFF) 然后在系统服务中执行任务来实现。然而,它使用户停留在没有进度指示的登录屏幕上。

如果可以在资源管理器终止后注入进程,则该进程将能够(在我的理论中)在同一用户的桌面上显示 UI,并在注销过程中有效地充当第二次自定义 shell。

相信/怀疑 Windows 在关机期间安装更新时会执行类似的操作(但目前在 Vista 上尚未注意到此行为)

总之,在用户注销期间资源管理器关闭后,Vista 中似乎没有明显的方法来阻止关闭?

0 投票
1 回答
325 浏览

service - Vista服务:可以在隐形桌面上显示表格吗?

我正在尝试在 Vista 上显示来自服务的表单(使用 .NET winforms)

显然表单不会显示给控制台用户,因为服务在会话 0 中是隔离的。

然而,实验是看是否有可能“显示”一个不可见的表单并获得一个窗口句柄和消息循环

我已经尝试过,但是当我发出 form.Show() 时,只有 form.Load 事件不会触发 .Shown 或 .FormClosing

有没有办法像用户应用程序那样以这种方式捕获 Windows 消息?

我没有尝试使服务“交互”,因为我不希望与登录用户交互。

0 投票
2 回答
1128 浏览

windows - Windows 桌面锁定时 ExitWindowsEx 失败

使用按钮单击事件创建一个表单(我使用的是 .NET 2.0):

点击按钮,按Left-WindowsKey+L锁定桌面。关机失败。

ExitWindowsEx 返回 1(成功)。

为什么这个 API 会失败,当桌面被锁定时还有什么可能会失败?

0 投票
2 回答
2147 浏览

windows - 选择 Windows“安装更新并关闭”注销选项时究竟会发生什么?

当更新可用并且用户从 Windows 开始菜单中选择关闭时,会出现一个对话框,其中包含关闭、注销等菜单。

出现的一个选项是

“安装更新并关闭”

问题是,当用户按下 OK 时究竟会发生什么?

任务是否显示对话框资源管理器?(似乎无法通过进程监视器间谍来判断,因为桌面已冻结)

我假设(但不确定)这是资源管理器,当用户按下 OK 时,它会调用 ExitWindowsEx

如果是这样,问题是当用户选择“安装更新并关闭”时有什么不同,它会向 ExitWindowsEx 发送特殊标志还是调用另一个 API,是否有任何方法可以窥探此功能?

0 投票
1 回答
295 浏览

asp.net - ASP.NET 紧急关闭和重定向

有人告诉我,要关闭一个 ASP.NET 站点并用静态文本替换所有页面,应该添加一个带有特殊扩展名的 HTML 文件。但是我的 google/bing 技能不够好,你能帮我解决这个问题吗?