J'ai un service qui exécute des travaux par lots sur un certain nombre de machines de laboratoire. Les ordinateurs de laboratoire sont des ordinateurs de bureau et je souhaite exécuter le service uniquement si aucun utilisateur n'est actuellement connecté. Cela signifie:

  • Lorsqu'un utilisateur se connecte, le service doit être arrêté.
  • Lorsque le dernier utilisateur se déconnecte, le service doit être démarré.

Mon idée actuelle est d'utiliser Conflicts=, mais cela pose un certain nombre de problèmes:

  • Le service n'est pas redémarré lorsque le dernier utilisateur se déconnecte.
  • Le démarrage manuel du service entraînerait une déconnexion forcée de tous les utilisateurs.
  • Je ne sais pas comment gérer les services instanciés (c’est-à-dire qu’il me faudrait Conflicts=user@*.service )

Comment définir un tel service systemd sans les problèmes ci-dessus?

morxa
la source