运行 Java ScheduledExecutorService 在后台

Run Java ScheduledExecutorService in the background

我有一个每两分钟运行一个进程的 jar 文件。它工作得很好,但如果有人关闭终端,进程就会终止。我正在寻找一种将其作为后台进程执行的方法。这是我的主要内容:

public class SMSAlert {

    private static ScheduledExecutorService scheduler;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        scheduler = Executors.newSingleThreadScheduledExecutor();
        Alert alert = new Alert();
        scheduler.scheduleAtFixedRate(alert, 0, 2, TimeUnit.MINUTES);
    }

}

在 linux 上,您可以使用 screen 命令避免 'closing terminal kills process' 问题。这使进程不受终端发生的事情的影响。

您的问题的另一个解决方案是 运行 通过 Cron 您的申请。再一次,这使得它的执行独立于任何特定的终端会话。