2017-10-19 4 views
0

J'ai un fichier jar qui exécute un processus toutes les deux minutes. Cela fonctionne parfaitement mais si quelqu'un ferme le terminal, le processus est terminé. Je cherche un moyen de l'exécuter en tant que processus d'arrière-plan. Voici ma principale:Exécutez Java ScheduledExecutorService en arrière-plan

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); 
    } 

} 
+1

Cela ressemble plus à un problème de système d'exploitation qu'à un problème de programmation. Quel système d'exploitation utilisez-vous? –

+0

Il fait la même chose pour Linux et Windows. – ErrorNotFoundException

Répondre

0

Sur linux, vous pouvez éviter le problème « terminal de fermeture tue processus » en utilisant la commande screen. Cela détache le processus d'être affecté par ce qui arrive au terminal.

Une autre solution à votre problème serait d'exécuter votre application via Cron. Une fois de plus, cela rend son exécution indépendante de toute session de terminal particulière.