标签: shutdown-hook

当脚本从命令行中被杀死时,PHP的register_shutdown_function会被触发?

当从命令行(通过Ctrl + c)或使用kill命令终止cron进程时,是否可以调用函数?

我试过了register_shutdown_function(),但是当脚本被杀死时似乎没有被调用,但是当脚本正常结束时会被调用.

我试图将结果记录到一个文件,并在cron实例被自动终止时更新数据库值(即运行时间太长).

php shutdown-hook

11
推荐指数
1
解决办法
5580
查看次数

CTRL-C如何与Java程序一起使用

当我按ctrl- c在控制台中按应用程序线程停止的顺序和关闭挂钩调用?

java console shutdown-hook

11
推荐指数
2
解决办法
1万
查看次数

如果从关闭钩子调用System.exit会发生什么?

我在Java中有一个相当复杂的关闭 - 有很多清理工作要做.特别是我试图找出如何从关闭钩子线程错误处理.我的代码目前包括:

try {
    return shutdownPromise = doShutdown();
}
catch (Throwable exc) {
    logger.error("An exception was thrown while shutting down the application.", exc);  
    System.exit(1);
    return null;
}
Run Code Online (Sandbox Code Playgroud)

当我最初写这篇文章时,我基本上认为,关机时的错误应该直接进行exit.但是exit水平不是那么低; 它调用了shutdown hooks.

所以我认为 -

  1. 从关闭钩子调用退出做什么?
  2. 从关闭钩子处理错误的正确方法是什么?

java shutdown shutdown-hook

11
推荐指数
1
解决办法
3924
查看次数

如何让IntelliJ调试器允许我的应用程序的关闭挂钩运行?

在IntelliJ中调试注册关闭挂钩的应用程序时,如果单击绿色的"重新启动"圆形箭头按钮,则不会调用关闭挂钩,也不会单击红色方块"停止"按钮.在这两种情况下,看起来app-under-debug都会被立即强行终止.

(注意这不是重复的如何停止在intelliJ中运行的处理,以便它调用关闭钩子?)

当我"手动"向调试器进程发送来自Mac终端的INT信号时,我的关机挂钩当然会按预期运行.但我无法在IDE中发现任何引发所需行为的配置设置或控件.

java debugging intellij-idea shutdown-hook intellij-13

10
推荐指数
1
解决办法
3891
查看次数

以编程方式禁用log4j 2中的shutdown hook

可以通过配置禁用log4j2中的关闭挂钩:

<Configuration shutdownHook="disable">
Run Code Online (Sandbox Code Playgroud)

有可能以编程方式这样做吗?

shutdown-hook log4j2

10
推荐指数
1
解决办法
1117
查看次数

带有多个线程的java shutdown hook

我试图在我的ubuntu服务器上运行一个关闭钩子,但是我似乎遇到了多个线程的问题.使用基本的ShutdownHook,当我使用kill进程时,下面的代码可以正常工作kill <PID>,这意味着关闭行为被激活.

public static void main(String[] args) {
    ShutdownHook shutDown = new ShutdownHook();
    shutDown.attachShutDownHook();

    while(true){}
}
Run Code Online (Sandbox Code Playgroud)

但是这个带有附加线程的相同代码却没有

public static void main(String[] args) {
    ShutdownHook shutDown = new ShutdownHook();
    shutDown.attachShutDownHook();

    (new Thread() {
        public void run() {
            while ( true ) {}
        }
    }).start();

    while(true){}
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

class ShutdownHook {

    ShutdownHook() {
    }

    public void attachShutDownHook() {

            Runtime.getRuntime().addShutdownHook(new Thread() {
                    @Override
                    public void run() {
                            System.out.println("Shut down hook activating");
                    }
            });
            System.out.println("Shut Down Hook Attached.");

    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading shutdown-hook

8
推荐指数
1
解决办法
3204
查看次数

Java - 如何让logger在shutdown hook中工作?

我有一个专门的记录器类,它使用java.util.logging.Logger该类.我希望能够在另一个类的关闭钩子中使用此记录器.但是,它似乎不会在关机时登录.根据我的阅读,可能已经为记录器本身激活了一个关闭钩子,这导致了问题.

我怎样才能让它发挥作用?理想情况下,我希望在日志文件中看到我实际上在进程终止时执行了shutdown钩子.

java logging shutdown-hook

8
推荐指数
1
解决办法
5976
查看次数

Java deleteOnExit和addShutdownHook - 哪个先来?

我有一些临时文件,我打电话deleteOnExit()给.我也有一个可以运行的runnable,addShutdownHook()可以在System.exit调用时运行.

我的关机挂钩运行时是否保证临时文件仍然可用?

java shutdown-hook java-io

7
推荐指数
1
解决办法
311
查看次数

如何在shutdown hook中获取返回码

我需要根据我的应用程序结果修改JVM返回码.

但是显式调用System.exit(代码)是有风险的,因为应用程序很复杂,很难识别运行线程的结束.

所以我想出了在JVM退出之前使用shutdown hook修改返回代码.

但是有一个问题是如何获得JVM的原始返回码,因为它可能是错误代码而不是0.

java shutdown shutdown-hook

7
推荐指数
1
解决办法
784
查看次数

控制 Spring Boot 优雅关闭

Spring Boot 有没有办法控制应用程序的正常关闭?

我知道您可以@PreDestroy在 bean 中拥有方法,但是如何控制这些@PreDestroy方法的调用顺序?

您可以拥有多个相互依赖的 bean,上下文的关闭是否已经查找此依赖项并@PreDestroy以正确的顺序调用方法?

例如,我想要完成的是:
1)停止在休息端点上侦听新请求
2)防止兔子消息侦听器接受新消息
3)等待在关闭之前已开始但尚未完成的所有处理。

shutdown application-shutdown shutdown-hook spring-boot

7
推荐指数
1
解决办法
5839
查看次数