1

У меня есть служба, которая запускает пакетные задания на нескольких лабораторных машинах. Лабораторные машины - это настольные компьютеры, и я хочу запускать службу только в том случае, если в данный момент не зарегистрирован ни один пользователь. Это означает:

  • Когда пользователь входит в систему, служба должна быть остановлена.
  • Когда последний пользователь выходит из системы, служба должна быть запущена.

Моя текущая идея - использовать Conflicts= , но у этого есть ряд проблем:

  • Служба не запускается снова, когда последний пользователь выходит из системы.
  • Запуск службы вручную приведет к принудительному выходу из системы всех пользователей.
  • Я не знаю, как создать глобальные сервисы (например, мне понадобится Conflicts=user@*.service).

Как определить такой сервис systemd без вышеуказанных проблем?

0