$ sudo cast post-factum
По мотивам нашего недавнего разговора.
❯ uname -a
Linux orages 4.12.0-pf5 #2 SMP PREEMPT Mon Aug 7 01:01:07 +08 2017 x86_64 Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz GenuineIntel GNU/Linux
~
❯ mount | grep cgroup
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
Конфиг ядра здесь.
Вот такой вывод получаю, когда пробую запустить свой скрипт (в качестве примера взял Telegram):
❯ bash -x ~/bin/telegram
++ basename /home/spijet/bin/telegram
+ CGROUP=telegram
+ TASKFILE=/sys/fs/cgroup/memory/telegram/tasks
+ MEM_MB=200
+ PROGRAM=/usr/bin/telegram-desktop
+ PRIVATE_DIR=/home/spijet/.cache/firejail-private/telegram
+ '[' -f /sys/fs/cgroup/memory/telegram/tasks ']'
+ sudo /usr/bin/cgcreate -a spijet:spijet -t spijet:spijet -g memory,cpu:telegram
/usr/bin/cgcreate: can't create cgroup telegram: Cgroup one of the needed subsystems is not mounted
+ /usr/bin/cgset -r memory.limit_in_bytes=209715200 telegram
+ /usr/bin/firejail --cgroup=/sys/fs/cgroup/memory/telegram/tasks /usr/bin/telegram-desktop
Error: invalid cgroup
/usr/bin/cgcreate
— часть пакета libcg
, который, судя по SourceForge, давно не обновлялся. Почитаю больше про CGroups v2 и попробую переработать скрипт.