繁体   English   中英

Raspberry Pi Java关闭挂钩

[英]Raspberry Pi Java Shutdown hook

我有一个运行Java 1.8.0的Raspberry Pi和一个名为test.jar的文件。 当我运行代码,然后使用Ctrl + Z停止程序时,关机挂钩不会运行,但是当我在Windows上运行代码并将其停止时,关机挂钩将起作用。

我该如何解决这个问题,谢谢

public class Test
{
    public static void main(String[] args)
    {
        Runtime.getRuntime().addShutdownHook(new Thread()   //Add shutdown code
        {
            public void run()
            {
                System.out.println("Shutdown");
            }
        });

        while(true) { }
    }
}

在Linux终端中,ctrl-z将SIGSTOP发送到前台进程。 这是您在处理过程中无法处理的两个信号之一(另一个是SIGKILL )。 这意味着java无法响应该信号运行任何代码。

但是, SIGSTOP无论如何都不会结束该过程,只是将其暂停。 您可以通过发送SIGCONT信号来继续操作,这可以在您的Shell中使用fg命令来实现。

尝试使用ctrl-c结束程序,它应该可以工作(因为它将发送SIGINT ,可以处理)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM