问题标签 [shutdown-hook]
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.
java - JVM 在调用停止之前允许关闭挂钩运行多长时间?
跟进上一个问题
如果你读过上一个问题,另一个标题可能是:
我的守护进程应该多久检查一次它是否被中断?
java - 设置 ShutdownHook 并退出应用程序
我有以下代码:
这是一个非常简单的程序,用于记录用户的登录和注销。问题是程序在到达函数 main() 的末尾时退出。
我是否正确使用了关闭事件挂钩?我不想创建复杂的 Windows 服务,它必须是一个非常简单的应用程序,因为它将用于远程连接的 Windows 会话。
您对后台等待登录终止有什么建议吗?
java - 从 bat 脚本运行的 java 应用程序上的 Windows 关闭挂钩
我有一个运行 java 应用程序的 bat 脚本。如果我在它上面按 ctrl+c,应用程序会优雅地终止,调用所有的关闭挂钩。但是,如果我只是关闭 bat 脚本的 cmd 窗口,则永远不会调用关闭挂钩。
有没有办法解决这个问题?也许有一种方法可以告诉 bat 脚本在其窗口关闭时如何终止调用的应用程序?
windows - 如何在 Delphi 中检测 Windows XPe 关机原因?
我使用以下过程正确拦截了 Delphi 2009 中的 Windows 关闭消息WMQueryEndSession :
本文建议我可以通过检查消息的LParam来区分常规关闭和注销。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa376890%28v=vs.85%29.aspx
更新:
我正在开发一个在Windows XP Embedded上运行的应用程序,但就我而言,LParam每次都是 0。
如果我在 Windows 7 或 Windows XP Home 下测试我的应用程序,那么我会得到预期的 80000000 美元。
任何指针将不胜感激!
java - 退出时是否可以收集有关正在运行的 .jar 文件的信息?
退出时是否可以收集正在运行的 .jar 文件中所有现有变量的信息?我在各种服务器的 linux 命令行上运行一个应用程序,当 jar 停止在 10% 的系统上运行时,我尝试调试一个问题。
在 Android 中,有一个调用的方法onDestroy()
可以被覆盖,以便在应用退出时执行任务。在本机 Java 应用程序中是否有类似的可能?即使是这样,我怎么能收集数据呢?
c# - 如何在 C# 中挂钩 NTShutdownSystem 以区分关机和重启
不幸的是,当您收听 WM_QUERYENDSESSION 时,如果用户请求重新启动或关闭,您不会获得信息。这是一个非常糟糕的设计,但它就是 Windows 的方式,所以我正在考虑将调用挂钩到 NTShutdownSystem,它获取一个参数,告诉系统执行重新启动或关闭。
问题是:如何在 C# 中实际实现这一点?我想获得某种挂钩,我可以使用它来确定传递给 NTShutdownSystem 的参数,然后保存该信息。之后,我想按照用户想要的方式调用“真正的”NTShutdownSystem。
你有任何示例代码来说明这一点吗?
clojure - 使用“lein run”运行时不会触发关闭挂钩
我有以下代码:
和以下 project.clj
当我使用“lein run”运行它时,关闭挂钩仅在正常程序执行时执行,而不是在接收 SIGINT (Ctrl-C) 时执行
即使在接收到 SIGINT 时,在 lein 之外运行的相同代码也会成功执行关闭挂钩。
从 lein 运行并使用 Ctrl-C 中止时,如何执行关闭挂钩?
c# - 如何从 C# 1 正确关闭 Java 应用程序
我有 java 应用程序,它在我使用时正确关闭CTRL-C
,java 应用程序在关闭前保存所有数据。现在我试图从我的 C# 控制台应用程序中关闭这个 java 应用程序Process.Close()
,但是当我使用它时应用程序不保存任何数据,我也尝试过Process.CloseMainWindow()
,但是使用这个没有任何事情发生,Process.Kill()
而且使用这个进程刚刚被杀死,没有任何保存.
如何从 C# 控制台应用程序提高 java 应用程序的关闭挂钩?
c# - 在 C# 上模拟 CTRL-C 以关闭 Java 应用程序
我创建了一些代码来从 C# 控制台应用程序正确关闭 java 应用程序,InputSimulator
但是当我尝试它时,它没有给我预期的结果。
当我使用键盘 CTRL-C 关闭我的 Java 应用程序时
当我使用 InputSimulator 关闭我的 java 应用程序时
全线程转储 Java HotSpot(TM) 客户端 VM(20.6-b01 混合模式):
“DestroyJavaVM”prio=6 tid=0x4b524000 nid=0x6f4 等待条件 [0x00000000] java.lang.Thread.State: RUNNABLE
“线程 1”prio=6 tid=0x4b523800 nid=0x65c 等待条件 [0x4cd0f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at gameserver.utils.DeadlockDetector .run(DeadlockDetector.java:76) at java.lang.Thread.run(Unknown Source)
“server-rdc-acceptor”prio=6 tid=0x4b523000 nid=0x102c 可运行 [0x4cc7f000] java.lang.Thread.State: 在 sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) 在 sun.nio 处可运行。 ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
我的 InputSimulator 使用:
我做错了什么?
scala - Java/Scala 关闭挂钩 -noclassdeffounderror
我有一个多线程 Scala 应用程序,并且我有一个关闭挂钩,它在对象上调用一个 shutdown() 方法。不幸的是,这似乎并不可靠。很多时候它无法处理 SIGINT 并在匿名函数上抛出 NoClassDefFoundError。
如何使这个关闭处理程序更健壮?