LINUX.ORG.RU

Как можно подгрузить пользователя и группу из стороннего конфига в service-файле

 ,


0

1

Собственно git-daemon@.service сейчас выглядит так:

[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)

[Service]
User=nobody
Group=nobody
EnvironmentFile=/etc/conf.d/git-daemon
# Ignore non-zero exit status, access error makes git-daemon return them
ExecStart=-/usr/libexec/git-core/git-daemon --inetd --base-path=/var/git --verbose $GITDAEMON_OPTS
StandardInput=socket
StandardOutput=inherit
StandardError=journal

С практической точки зрения можно просто и в нем заменить nobody на требуемого пользователя и группу, но хотелось бы узнать, можно ли это сделать в таком стиле:

[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)

[Service]
EnvironmentFile=/etc/conf.d/git-daemon
User=$GIT_USER
Group=$GIT_GROUP
# Ignore non-zero exit status, access error makes git-daemon return them
ExecStart=-/usr/libexec/git-core/git-daemon --inetd --base-path=/var/git --verbose $GITDAEMON_OPTS
StandardInput=socket
StandardOutput=inherit
StandardError=journal

Если так написать сейчас, то в логах вот что:

systemd[25701]: Failed at step USER spawning /usr/libexec/git-core/git-daemon: No such process

Походу переменная не раскрывается.

★★★★★

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

Подстановки можно только в параметрах к Exec*, ЕМНИП. Так что в этом стиле, видимо, нельзя (про параметры к git-daemon ничего не знаю, говорю только про решения со стороны systemd).

Зато можно создать drop-in (файл, который оверрайдит часть юнита):

/etc/systemd/system/git-daemon@.service.d/user.conf

[Service]
User=...
Group=...

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от deterok

Ну вот так. Подгрузить из конфига systemd не умеет; я написал, как можно обойти :)

Кстати, судя по «man 1 git-daemon», он умеет --user=<...> и --group=<...>.
Тогда юнит будет каким-то таким:

...
[Service]
...
ExecStart=-/usr/libexec/git-core/git-daemon --inetd --base-path=/var/git --verbose $GITDAEMON_OPTS --user=${USER} --group=${GROUP}
...

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от deterok
.include /path/to/systemd/service/file

Точка в начале не опечатка.

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