• Почему скрипт не работает после запуска unit в systemd?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    есть три варианта:
    1. Юнит принадлежит и работает только от суперпользователя, но скрипт/программу сам юнит может запустить от указанного юзера если в секцию [Service] добавить строки:
      User=юзер
      Group=группа

      обычно юнит лежит в /etc/systemd/system/XXX.service

      $ sudo systemctl enable XXX.service
      $ sudo systemctl start XXX.service
      ...



    2. Юнит принадлежит суперпользователю но с ним может работать любой пользователь:
      юнит лежит в /etc/systemd/user/XXX.service.
      Работать с ним можно точно также как и с обычным юнитом, только необходимо указывать парамерт --user, например:
      $ systemctl --user enable XXX.service
      $ systemctl --user start XXX.service
      ...


    3. Юнит принадлежит и работает только от одного конкретного пользователя:
      Располагается в домашней папке пользователя ~/.config/systemd/user/XXX.service.
      Для работы также нужно указывать параметр --user.
    Ответ написан
    6 комментариев