问题标签 [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 - CTRL-C 如何与 Java 程序一起工作
当我按ctrl-c在控制台中按什么顺序停止应用程序线程并调用关闭挂钩时?
java - 在关闭钩子中中断Java中的所有线程
我有一个简单的 java 程序,它创建了一系列存储在本地 tmp 目录中的临时文件。我添加了一个简单的关闭挂钩,它遍历所有文件并删除它们,然后在退出程序之前删除 tmp 目录。这是代码:
我的问题是创建这些文件的线程在启动关闭挂钩时可能没有终止,因此可能在listFiles()
调用之后创建了一个文件。这会导致 tmp 目录不会被删除。我想出了 2 hacks:
黑客#1:
黑客#2:
两者都不是特别好的解决方案。理想的做法是让关闭钩子等到所有线程都终止后再继续。有谁知道这是否可以做到?
java - Cygwin CTRL-C(信号中断)无法正常工作 - JVM 关闭挂钩未启动
我正在开发一个 Java 应用程序,它利用关闭挂钩来清理程序的终止/中断,但我注意到 Cygwin 的 CTRL-C 实现似乎不会触发关闭挂钩。从表面上看,它似乎已经中断了进程,将控制权交还给了命令行,但是根本没有触发进程的关闭挂钩,因此不会发生清理。
在 cmd 他们被抓住了,但由于各种限制,我需要以某种方式让他们在 Cygwin 中工作。
有没有办法通过 Cygwin 在正在运行的进程中触发 SIGINT,或者可能是我可以用来清理中断和终止的关闭挂钩的替代方法?
java - 如何使用关闭挂钩优雅地停止 Guava AbstractScheduledService?
我正在使用带有调度程序的 AbstractScheduledService。一个简单的模式,如:
现在,我想像这样实现一个典型的关闭钩子:(下面的代码片段将在 main 方法中)
关闭挂钩来自典型的文档示例。它似乎不适用于 Guava 服务模式,因为服务本身运行在不同的线程上。
我的服务在 runOneIteration() 逻辑中有一个轮询循环。我希望它完成手头的当前任务,然后在看到 keepRunning 现在为假时优雅地关闭,因为 Shutdown 钩子在最近一段时间忙于当前迭代时被使用。
有什么想法可以优雅地完成(完成当前迭代然后关闭)?
scala - 关闭钩子不会在 ^C (scala) 上启动
我正在尝试进行干净而优雅的关机,但由于某种原因,它不会执行。我试过了:
并且:
其中ThreadOperations.delayOnThread
定义是:
但是当我运行我的程序(可执行jar,双重激活)时,钩子没有启动。那我做错了什么?在 scala 中添加关闭挂钩的正确方法是什么?它与我使用双重激活的事实有任何关系吗?
双重激活是这样完成的:
(scala 版本: 2.9.2 )谢谢。
java - 关闭挂钩在 Eclipse 中不起作用
我通过以下方式添加了一个关闭挂钩:
它可以正常工作,但是当我单击 Eclipse 中的红色停止按钮时就不行了。有没有办法在 Eclipse 中调用关闭挂钩?
java - 来自 UNIX 的关闭挂钩
我试图让我的 Java 程序在我的 unix 服务器上正常退出。我有一个 jar 文件,我从早上的 cron 作业开始。然后在晚上,当我想关闭它时,我有一个 cron 作业,它调用一个找到 PID 的脚本并调用kill -9 <PID>
. 但是,当我以这种方式终止时,似乎没有激活我的关闭挂钩。我也试过kill <PID>
(没有-9),我遇到了同样的问题。如何确保调用关闭挂钩?或者,也许有更好的方法可以每天杀死我的进程。
java - 具有多个线程的 java 关闭钩子
我正在尝试让一个关闭挂钩在我的 ubuntu 服务器上工作,但是我似乎遇到了多个线程的问题。使用基本的 ShutdownHook,当我使用 杀死进程时,以下代码确实有效kill <PID>
,这意味着关闭行为被激活。
但是,带有附加线程的相同代码不会
有任何想法吗?
java - 任何要启动、关闭 Java 进程的模块(如 Jetty start.jar)?
大多数服务器都喜欢Jetty
或Weblogic
提供某种机制来通过调用(有时超过jmx
)来启动或关闭服务器。可以始终保持东西从主要运行:
并杀死进程PID。但认为可能有一个不错的开源解决方案在网络空间中徘徊,增加了JMX
花里胡哨的功能。
objective-c - iOS 5 - 关机钩子
我想在应用程序关闭时执行某些清理任务。我使用像这样的观察者:
当应用程序进入后台时得到通知。
问题是,如果应用程序崩溃,没有通知让我做某事。
我看到 testflight.com 使用挂钩来恢复崩溃信息,我想知道是否也可以检测崩溃并执行一些任务。
我的担忧是关于呼吁:
应用程序崩溃时未完成,从而使用户在顶部保持不变的位置图标。我知道崩溃不应该经常发生,但如果可以的话,我想在这种情况下尽可能多地进行清理。