LINUX.ORG.RU

Права на перезапуск unit'а systemd

 ,


0

6

Привет!

Есть вот такой простенький unit:

$ cat /etc/systemd/system/myunit.service

[Unit]
Description=My test unit

[Service]
Type=simple
WorkingDirectory=/home/alozovskoy/unit
User=alozovskoy
Group=alozovskoy

ExecStart=/usr/bin/python2.7 /home/alozovskoy/unit/unit.py

[Install]
WantedBy=multi-user.target

Юнит нормально запускается, работает, перезапускается, но все это возможно только от рута. Скрипт запускается от моего пользователя, но перезапустить юнит от этого пользователя я не могу, хотя, например, могу убить выполняющийся скрипт вручную без каких-либо проблем.

Хочу узнать, как можно дать права на запуск и остановку юнита тому пользователю, от которого он работает, не используя при этом sudo. А, да, класть юнит в ~alozovskoy/.config/systemd/user тоже не вариант (хотя он и не работает) - я хочу чтоб root тоже этот юнит «видел». Нагуглить по этому вопросу ничего не сумел.

Заранее спасибо за рекомендации!

Ответ на: комментарий от i_gnatenko_brain

При использовании флага --user я получаю ошибку

Failed to get D-Bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

Никаких иксов у меня на хосте нет.

alozovskoy ★★★★★ ()
Ответ на: комментарий от alozovskoy

Скорее всего надо еще пользовательскую сессию systemd от этого пользователя запустить:

$ systemd --user
$ systemlctl --user start myunit.service
Kiborg ★★★ ()
Ответ на: комментарий от Kiborg

systemd --user, как и PID 1, должен запускаться с чистым окружением, в отдельной цгруппе и вне сессий. Он запускается автоматически из общесистемного systemd как юнит user@$UID.service по команде от logind при регистрации первой сессии пользователя в стеке PAM.

intelfx ★★★★★ ()
Ответ на: комментарий от intelfx

Примерно понятно. Я, честно говоря, думал, что оно работает, как я выше предложил.

Kiborg ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.