问题标签 [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.

0 投票
2 回答
836 浏览

java - 处理tomcat停止

我们使用交换服务器获取电子邮件并打开连接 30 分钟,然后在接下来的 30 分钟内自动重新打开它。但是当我们要部署新的war-file并停止tomcat服务时,连接不会关闭,而连接期没有结束(30分钟)。所以这个时间间隔内无法启动tomcat服务。我试图用这样的关闭钩子来处理服务器停止

但它不起作用。还有其他方法可以关闭连接吗?

与交换服务器的连接在新线程中。雄猫 7.

我们还想以任何方式处理(关闭连接)停止 tomcat。

PS对不起我的英语。

更新:我发现 bean 的 destroy 方法执行,但连接在 1-2 分钟内关闭。对于网站来说,时间仍然太长。

0 投票
2 回答
768 浏览

java - 跨不同 JVM 的 Java 关闭挂钩

我可以在jvm. 我的意思是我可以将关闭从我的 JVM 附加到以不同方式运行的 weblogic 服务器jvm吗?

0 投票
1 回答
29 浏览

svn - 接收邮件包含更改的文件名以及邮件本身的详细信息

我有一个疑问,我有一个由 10 名开发人员组成的团队,用于在 SVN 存储库中以不同的时间间隔提交代码,所以为了知道哪些不同的文件已被交换,我将关闭后挂钩放在脚本中我已经添加了我的邮件 ID,这样如果添加了任何文件,那么来自 unix 框的邮件将发送给我,其中包含已更改的修订版和文件名。

现在请告知是否有任何脚本我可以添加,它与邮件格式的文件名一起还将提供添加了哪些行以及删除了哪些行的内容,这些内容以红蓝色显示,以便在邮件本身中我可以看到文件名也包含内容,请告知我可以在我的 SVN 存储库中添加的此类脚本,我将在主干级别本身添加此类脚本。

0 投票
4 回答
1384 浏览

java - 在java中运行关闭挂钩问题

我正在尝试让一个关闭挂钩在 java 中运行。这个钩子的目的是写入一个程序被终止的日志文件。Java 应用程序被编译成 jar 文件并使用批处理文件执行,这意味着应用程序的输出将转到 cmd.exe 窗口。当此 cmd 窗口关闭时,我希望应用程序记录它已关闭。

该应用程序旨在无限期地运行并在特定时间执行特定任务。因此,程序在“While true”循环中执行一系列检查。我不明白为什么这个钩子不会记录应用程序正在关闭!

在主要方法中,我们有:

所有“任务”都是我的一个自定义类的实例,它进行数据记录。当您调用方法“log”时,它有一个 BufferedWriter 并调用它的 .write()、.newLine() 和 .flush() 方法。

当我杀死批处理窗口时,我似乎无法在我的日志文件中获得“程序关闭”行。我究竟做错了什么?

0 投票
2 回答
725 浏览

swing - Scala 为 Scala swing 添加关闭钩子

我以前在 java 应用程序中使用过关闭挂钩,但在 java swing 中没有。我想向 scala swing 应用程序添加一个关闭挂钩。Scala swing 没有主要方法,所以我不知道如何实现它我想在关闭之前运行一些方法,所以如果在关闭挂钩之外还有其他方法,请提出建议。

0 投票
0 回答
217 浏览

java - 这是 JVM 还是 GNOME 3 错误?

我想我在 jvm 或 gnome 3 上发现了一个错误。如果应用程序在关闭或注销时激活了 EDT,则永远不会在 gnome 3 上运行 Shutdownhooks - 永远不会 - 而如果应用程序从未使用过 Swing,它们总是运行/启动/AWT。

如果您忽略此类上注释的“解决方法”方法: https ://gist.github.com/i30817/9421646

(由于某种原因,它实际上可以通过使 gnome-shell 崩溃来更难地关闭关机,尽管我认为我在正确的解决方法中)

并像这样运行测试: java -jar test.jar > test.log

然后尝试注销,重新登录,测试日志为空。

事实上,如果你尝试使用这个 systemtap 脚本运行它(安装 systemtap,像这样运行它: sudo stap -o test.log -c "java -jar test.jar" scriptfile.stp )

您会发现 jvm 退出值绝对不是 0(unix 和系统退出使用的“成功”约定),而如果您在正常操作时退出,它们会是。如果您进一步尝试使用 byteman 脚本,您会看到关闭挂钩甚至永远不会启动。

这是为了确保我不会发疯,这是一个真正的错误,因为我一直在得到这个,我很奇怪java已经被破坏了一年多,没有人注意到。如果你有勇气,你甚至可以取消注释“解决方法”,尽管正如我所说,这种方法让我即使在注销时也会挂起。关闭挂钩确实从它开始。

0 投票
0 回答
60 浏览

java - 使 Java 应用程序阻止多个自身实例

我看到了关于这个主题的各种帖子,但除了 C# 方式之外没有确凿的答案。

使用锁定文件会起作用,但并不漂亮。

我看到了使用停机挂钩的参考,但没有任何详细说明。在梳理了 Runtime 类的 API 文档后,我无法弄清楚如何。我以前使用过shutdownhook,但只是为了它的广告功能。谁能给我看一个用于上述目的的片段?

0 投票
3 回答
790 浏览

java - 如何调用在另一个线程中运行的程序的关闭挂钩

我正在使用 Jemmy 框架为 Swing 应用程序编写自动化测试。

我的测试套件通过在新线程中调用其 Main 类的 main 方法来运行此应用程序。

我已经编写了很多与 GUI 相关的测试,但现在我有一个更复杂的任务。

我需要检查被测试的应用程序在关闭时是否对文件夹进行了一些清理。此操作可能作为关闭挂钩执行。是否可以在不调用System.exit(0)的情况下调用该应用程序的关闭挂钩?

调用此命令时,两个线程都将终止。但是我希望测试的线程在测试的应用程序关闭后继续运行,这样我就可以检查这些文件夹是否仍然存在。是否可以在不更改我的测试套件架构的情况下调用关闭挂钩?

0 投票
0 回答
247 浏览

java - 如何*强制*执行关闭挂钩

我们基于 Java-1.7 的应用程序使用 SWT,并且当(Windows)系统关闭(或重新启动)时,SWT 部分被正确处理,应用程序退出System.exit(0)但注册的关闭挂钩(用于清理临时目录)没有按照到日志记录。

如何强制执行关闭挂钩,例如从代码中执行?

0 投票
0 回答
926 浏览

java - 将值传递给 ShutdownHook 或从 ShutdownHook 访问其他对象的值

我想弄清楚的是,当程序终止时,如何显示来自其他类对象的数据成员的值。我的意思是,使用ShutdownHook,将在按下Ctrl+C终止程序时访问。

以下是示例代码:

如何将数据从mtc[]对象传递到Stats类对象,或者如何mtc[]Stats类对象访问对象数据成员?