我有它创建了一个锁定文件,以确保没有其它执行在相同的时间,因为它运行的Java程序。如果程序运行时,它创建的文件,并在退出时,成功或通过一个例外,该文件将被删除。但是,如果用户点击Ctrl + C键,关闭终端,或以某种其他方式中断执行,该文件没有被删除。有什么方法来检测该中断命令,并确保该文件在这种情况下删除了呢?

有帮助吗?

解决方案

您可能要考虑的关闭挂钩的。

此外,这可能是从一天或两天前重复或这之前的SO问题的近乎重复的:

我如何“截距“CTRL + C在CLI应用程序?

其他提示

要解决这个问题的唯一的好办法就是时间戳日志文件,并用新的时间戳更新日志文件每隔几秒钟。 File.deleteOnExit会有帮助,但没有一种方法是万无一失的(当有人只是拉电源线会发生什么?)。

如果你写一个时间戳,那么你可以检查有效的时间戳(最近写),并覆盖日志文件,如果实在是太糟糕过时。这样一个陈旧的锁文件将不会在用户的方式得到的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top