LINUX.ORG.RU
ФорумAdmin

systemd-escape && systemd-nspawn

 ,


0

1

Привет!

Перенёс железный сервер в виртуальную машину machinectl. Столкнулся с проблемой определения контрольной группы сервиса:

% systemctl --user show -p ControlGroup tmux.service
ControlGroup=/system.slice/system-systemd\x5cx2dnspawn.slice/systemd-nspawn@grey.service/user.slice/user-1000.slice/user@1000.service/tmux.service

% systemd-escape --unescape $(systemctl --user show -p ControlGroup tmux.service)
ControlGroup=/system.slice/system/systemd\x2dnspawn.slice/systemd/nspawn@grey.service/user.slice/user/1000.slice/user@1000.service/tmux.service
Как видно, во втором случае unescape разэскейпил "-" в «/», но напрасно, потому что на самом деле путь начинается с
/system.slice/system-systemd\x2dnspawn.slice/
Я не испытываю трудностей с преобразованием строк, но так и не смог привести первый вариант ко второму без костылей. ЧЯДНТ? Может есть еще способы узнать cgroup?

★★★

Пока обошёлся жутким костылём, так оно работает:

RT=$(systemctl --user show -p ControlGroup tmux.service)
RT="/sys/fs/cgroup/systemd/"${${RT/*?=/}/x5c/}

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

Да, изнутри контейнера, на сервис контейнера

Получается баг путей в sysfs? systemd-escape же выполняет то, что должен.

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

Баг отображения и/или хранения свойства ControlGroup, если я правильно понял происходящее. Доберусь до компа — проверю, потыкаю...

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