LINUX.ORG.RU
ФорумAdmin

systemd и понимание его RuntimeDirectory и CacheDirectory

 


0

1

Добрый день!

Есть у меня несколько сервисов, под управлением systemd. После успешного старта сервиса, в выводе systemctl sttatus XXX-servcie вижу странные ошибки:

 systemd[1]: [/lib/systemd/system/-dhcp-agent.service:12] Runtime directory is not valid, ignoring assignment: Service-XXX lock/Service-XXX
Jul 18 16:54:04 host.loc systemd[1]: [/lib/systemd/system/Service-XXX-dhcp-agent.service:13] Unknown lvalue 'CacheDirectory' in section 'Service'
Jul 18 16:54:04 host.loc systemd[1]: [/lib/systemd/system/Service-XXX-dhcp-agent.service:12] Runtime directory is not valid, ignoring assignment: Service-XXX lock/Service-XXX
Jul 18 16:54:04 host.loc systemd[1]: [/lib/systemd/system/Service-XXX-dhcp-agent.service:13] Unknown lvalue 'CacheDirectory' in section 'Service'
Jul 18 16:54:21 host.loc systemd[1]: [/lib/systemd/system/Service-XXX-dhcp-agent.service:12] Runtime directory is not valid, ignoring assignment: Service-XXX lock/Service-XXX
Jul 18 16:54:21 host.loc systemd[1]: [/lib/systemd/system/Service-XXX-dhcp-agent.service:13] Unknown lvalue 'CacheDirectory' in section 'Service'

В самом юните вижу:
[Unit] Description=Service-XXX After=mysql.service postgresql.service rabbitmq-server.service fdr.service Service-XXX-ovs.service

[Service]
User=Service-XXX
Group=Service-XXX
Type=simple
WorkingDirectory=~
RuntimeDirectory=Service-XXX lock/Service-XXX
CacheDirectory=Service-XXX
ExecStart=/etc/init.d/Service-XXX-dhcp-agent systemd-start
Restart=on-failure
LimitNOFILE=65535
TimeoutStopSec=15

[Install]
WantedBy=multi-user.target


Сам сервис работает но такой вывод меня напрягает.
Что означают переменные «CacheDirectory» и «RuntimeDirectory». Офф манул читал, но так и не понял, каким образом мне подкорректировать эти переменные

systemd --user stance does not create activated socket files, paths, CacheDirectory etc with proper labels like systemd --system does

это не то? В смысле директории существуют в хомяке Service-XXX?

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

Директория там есть, в /home/lock/Service-XXX но ошибка не уходит.

Hatumei
() автор топика

RuntimeDirectory=Service-XXX lock/Service-XXX

Runtime directory is not valid, это в какой ОС «Service-XXX lock/Service-XXX» - валидный абсолютный путь?

CacheDirectory=Service-XXX

Unknown lvalue 'CacheDirectory', не знаю что еще сказать

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

ну, насчет CacheDirectory в дебиане версия systemd 232, у тебя доки по 239. в родном мане я этой опции не нашел

насчет RuntimeDirectory, в мане:

Takes a list of directory names.

ничего про пробелы нет. попробуй или другие разделители, или в кавычки засунуть, или один каталог оставь

или вообще убери эти опции нафиг, непохоже, чтобы они задавали что-то сильно отличное от дефолта

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от MyTrooName
Example: if a system service unit has the following,

RuntimeDirectory=foo/bar baz

в дебиане версия systemd 232, у тебя доки по 239

Еще бы в первом посте про дистр было хотя бы.

Попробовал на 239 версии. RuntimeDirectory и CacheDirectory сработало. На 232 воспринимается только первый параметр и только если он не путь, CacheDirectory не работает.

А intelfx так и не пришел. :(

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

Ну на срачетемы обычно приходит сам.

Radjah ★★★★★
()

RuntimeDirectory это же для того чтобы создавать сервису папку в /var/run перед запуском. Сейчас же /var/run монтируется в tmpfs

Yur4eg ★★
()

systemd[1]: [/lib/systemd/system/-dhcp-agent.service:12] Runtime directory is not valid, ignoring assignment: Service-XXX lock/Service-XXX

systemd[1]: [/lib/systemd/system/Service-XXX-dhcp-agent.service:13] Unknown lvalue 'CacheDirectory' in section 'Service'

Возможно, у тебя слишком старый systemd, в котором CacheDirectory= не поддерживается вовсе, а RuntimeDirectory= принимает только один путь, а не список. Других предположений нет.

Что означают переменные «CacheDirectory» и «RuntimeDirectory».

Что конкретно не понятно из systemd.exec(5)?

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

Но на деле в Debian 9.5 работает только имя, а не путь.

Попробовал на 239 версии. RuntimeDirectory и CacheDirectory сработало. На 232 воспринимается только первый параметр и только если он не путь, CacheDirectory не работает.

This.

в дебиане версия systemd 232, у тебя доки по 239

Да, звучит как правда.

intelfx так и не пришел

Пропустил тред в уведомлениях. Спасибо за каст.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.