[arch-general] libvirt / lxc : no valid cgroup for machine

arnaud gaboury arnaud.gaboury at gmail.com
Sun Feb 16 05:56:26 EST 2014


> └» systemd-cgls

That's the point : I do not see any machine.slice in the tree :-(

gabx at hortensia ➤➤ ~aur/libvirt-git % systemctl status libvirt-guests.service
libvirt-guests.service - Suspend Active Libvirt Guests
   Loaded: loaded (/usr/lib/systemd/system/libvirt-guests.service; enabled)
   Active: active (exited) since Sat 2014-02-15 23:40:12 CET; 1h 22min ago
     Docs: man:libvirtd(8)
           http://libvirt.org
  Process: 748 ExecStart=/usr/lib/libvirt/libvirt-guests.sh start
(code=exited, status=0/SUCCESS)
 Main PID: 748 (code=exited, status=0/SUCCESS)
  >>>> CGroup: /system.slice/libvirt-guests.service<<<<<<   WHERE ARE THEY ?

gabx at hortensia ➤➤ ~aur/libvirt-git % ls -al /sys/fs/cgroup
total 0
drwxr-xr-x 10 root root 240 Feb 15 23:39 ./
drwxr-xr-x  7 root root   0 Feb 15 23:39 ../
drwxr-xr-x  3 root root   0 Feb 15 23:39 blkio/
drwxr-xr-x  3 root root   0 Feb 15 23:39 cpu,cpuacct/
drwxr-xr-x  3 root root   0 Feb 15 23:39 cpuset/
drwxr-xr-x  3 root root   0 Feb 15 23:39 devices/
drwxr-xr-x  3 root root   0 Feb 15 23:39 freezer/
drwxr-xr-x  3 root root   0 Feb 15 23:39 memory/
drwxr-xr-x  3 root root   0 Feb 15 23:39 net_cls/
drwxr-xr-x  4 root root   0 Feb 15 23:39 systemd/
lrwxrwxrwx  1 root root  11 Feb 15 23:39 cpu -> cpu,cpuacct/
lrwxrwxrwx  1 root root  11 Feb 15 23:39 cpuacct -> cpu,cpuacct/

Do you have anything more inside this dir ? I can not find machine.slice
I think I must have a closer look at my systemd setup. Can you tell em yours ?

>
> -----snip----
> #!/bin/bash
> LXC_VM=$1
> ID_OFFSET=$2
> LXC_BASEDIR=/var/lib/lxc
>
> if [[ ! -d "${LXC_BASEDIR}/${LXC_VM}/rootfs" ]]; then
>         echo "ERROR: ${LXC_BASEDIR}/${LXC_VM}/rootfs does not exist"
>         exit 1
> fi
>
> cd ${LXC_BASEDIR}/${LXC_VM}
>
> echo "Changing directories"
> for dir in `find rootfs -type d`; do
>         old_uid=`ls -nd ${dir}|awk '{print $3}'`
>         old_gid=`ls -nd ${dir}|awk '{print $4}'`
>         new_uid=$[${old_uid} + ${ID_OFFSET}]
>         new_gid=$[${old_gid} + ${ID_OFFSET}]
>         chown ${new_uid}:${new_gid} ${dir}
> done
> echo "Changing files"
> for file in `find rootfs -type f`; do
>         old_uid=`ls -nd ${file}|awk '{print $3}'`
>         old_gid=`ls -nd ${file}|awk '{print $4}'`
>         new_uid=$[${old_uid} + ${ID_OFFSET}]
>         new_gid=$[${old_gid} + ${ID_OFFSET}]
>         chown ${new_uid}:${new_gid} ${file}
> done
> ----snap----
>
> Disclaimer: separating dirs and files has no real reason here. Needs to
> run as root. May kill your cat etc..
>
TY for the script. I understand the UID and GID principles, but I had
no idea how to map all this.


More information about the arch-general mailing list