草庐IT

shutdown-hook

全部标签

java - 将 SIGTERM 发送到 JVM 是否安全

尽管JVM会translateSIGTERMandsimilarsignalstoshutdownhooks,许多服务关闭脚本使用TCP端口来启动关闭。(例如Tomcat的关闭端口、JavaServiceWrapper、JBoss的管理接口(interface)等)所以我认为不鼓励使用信号和关闭Hook来优雅地关闭java服务,直到我发现Play!frameworkismanagingtheservicelifecyclewithshutdownhooks并且playdist生成的启动脚本假定信号将发送到JVM的PID。我知道信号是平台相关的,使用TCP端口是一种简单且可扩展的跨平台管

java - 确定哪些方面 Hook 到给定的类

是否有可能确定哪些方面挂接到给定类并获得对其实例的访问权限?类似于:Foofoo=newFoo();Listaspects=getAllAspectsOf(foo); 最佳答案 首先,您很可能无法使用现有的AspectAPI进行任何此类监控,因为Aspect包装器会拦截具有不绑定(bind)到任何特定组件的特定目的的调用,因此不会有任何检测拦截方面的自然方法。也就是说-可能有一种方法可以将方面包装在某种策略类中,但是,维护它的工作量将非常大。http://www.eclipse.org/aspectj/doc/released/fa

java - 在 Java 中调用 ExecutorService.shutDown()

我开始学习ExecutorService类。文档(和在线教程)说总是调用ExecutorService.shutDown()来回收资源。但是,文档还说在您调用shutDown()之后,将不会接受任何新任务。所以,我的问题是,每当我需要并行化数据处理时,我是否总是必须实例化一个新的ExecutorService?现在我有一个可调用对象列表,我执行以下操作。publicvoidsomeMethod(){ListouterCallables=getOuterCallables();ExecutorServiceexecutor=Executor.newFixedThreadPool(NUM_

java - 有没有办法使用 java 获取/ Hook /附加一个已经运行的进程?

我希望能够做这样的事情:Processp=getRunningProcess(pid)如果有办法,进程的创建方式(使用java、使用python、从shell等...)是否重要? 最佳答案 可以从Java应用程序附加到另一个JVM进程(例如,能够监控正在发生的事情并可能在问题发生之前检测到问题)。您可以使用AttachAPI来执行此操作.不太了解附加到非JVM进程。Stringname=...Listvms=VirtualMachine.list();for(VirtualMachineDescriptorvmd:vms){if(v

java - Jenkins 钩子(Hook)不工作 - Jenkins bitbucket

您好,我正在使用jenkins和bitbucket,我想在我向bitbucket存储库提交任何内容时触发jenkins中的构建。在Jenkins我创建了一个名为test_1的项目在配置部分BuildTriggers部分我勾选了Triggerbuildsremotely我添加了一个tokenTEST_TOKEN当我在我的浏览器url中输入这个并执行jenkins构建时被触发http://test.com:8080/job/test_1//build?token=TEST_TOKEN在位桶中我添加了一个jenkinshook端点:http://test.com:8080/job/test_

java - 如何在关闭 Hook 中获取返回码

我需要根据我的申请结果修改JVM返回码。但是显式调用System.exit(code)是有风险的,因为应用程序很复杂并且很难识别运行线程的结束。所以我想到了使用shutdownhook在JVM退出之前修改返回码。但是有一个问题,我怎样才能得到JVM的原始返回码,因为它可能是一个非0的错误码。 最佳答案 你不应该在shutdownhook中调用exit方法,System.exit(status)内部调用Runtime.getRuntime().exit(status);这会导致你无限期阻止的应用程序。根据JavaDocIfthisme

java - flyway 4.0 java base回调afterValidate没有捕获钩子(Hook)

我有基于SQL和Java的迁移。我正在尝试使用Flyway回调Hook在验证完成后立即执行其他操作,但它没有捕获此回调。来自documentation,好像就这么简单。这是我的文件结构:-java--db---migrations----V1__apple我的回调:publicclassFruitShopFlywayCallbackextendsBaseFlywayCallback{@OverridepublicvoidafterValidate(ConnectiondataConnection){System.out.println("itworksssssssss");}}我的想法

java - 为 Eclipse RCP 应用程序添加 Shutdown Hook 的正确方法是什么?

我有一个使用内存数据库连接的RCP应用程序。有一种情况是,当关闭窗口时,应用程序在没有机会关闭与数据库的连接的情况下被杀死。我进行了一些研究,似乎添加一个ShutdownHook是检测此事件并在Java应用程序中进行清理的最佳方法。但是,如果您有一个RCP应用程序,并且可能打开了多个编辑器,那么正确的处理方法是什么? 最佳答案 注意:这个blogentry建议关闭Hook的以下实现:TheshutdowncodemustberunintheUIthreadandshouldnotberuniftheworkbenchisbeingc

java - 如何在本地局域网上找到 'shutdown' 系统的 MAC 地址(可能吗?)

如何找出系统的mac地址是:关机接通电源连接到局域网Nic卡开启。更新我在问如何找出已经关闭的其他系统的mac地址....并且在lan上..我想从我的系统中找出它的mac……并且要清楚……我想告诉你……arp表可以通过使用ping来填充……也就是说,如果172.16.3.12不在arp中table然后它可以通过ping172.16.3.12添加但是只有当它打开时才能ping系统...关闭系统不能被ping... 最佳答案 一旦系统关闭,找到MAC地址的最佳方法就是在机箱上的某个地方寻找贴纸!说真的,我猜你正在寻找某种方法来“wake

具有多个线程的java关闭钩子(Hook)

我正在尝试让一个关闭钩子(Hook)在我的ubuntu服务器上工作,但是我似乎遇到了不止一个线程的问题。使用基本的ShutdownHook,当我使用kill终止进程时,以下代码确实有效,表示关闭行为已激活。publicstaticvoidmain(String[]args){ShutdownHookshutDown=newShutdownHook();shutDown.attachShutDownHook();while(true){}}然而,具有附加线程的相同代码不会publicstaticvoidmain(String[]args){ShutdownHookshutDown=new