Systemd, cgroup, и LXC

После большого метода проб и ошибок мне наконец удалось получать Специю, работающую в Fedora контейнер LXC в соответствии с Ubuntu 14.04. Однако то же не может быть сказано относительно контейнера Ubuntu 14.04. Кажется, что проблема заключается в рамках дробной реализации Ubuntu systemd, тогда как полное внедрение Fedora (даже с ограничениями LXC), кажется, не имеет проблему в этом случае.

Мой тестовый сценарий полагается на Специю vdagent источники мерзавца. После того как специя-vdagent соединяется со специей-vdagentd, vdagentd пытается получить информацию сессии для vdagent PID через вызов libsystemd-login0 sd_pid_get_session. Этот вызов не возвращается с "Никаким таким файлом или каталогом", предотвращая форму Специи, работающую правильно. После рытья через источник libsystemd-login0 кажется, что этот вызов уверен в systemd cgroup.

К сожалению, этот cgroup не существует в контейнере из-за файла /etc/init/systemd-logind.conf явно, не монтируя cgroup при выполнении в контейнере. После удаления проверки LXC и перезагрузки контейнера LXC, меня оставляют с cgroup, смонтированным в/sys/fs/cgroup/systemd. Все, кажется, хорошо и хорошо до исследования/sys/fs/cgroup/systemd/cgroup.procs - это пусто, как все другие cgroup.procs файлы внизу. Комментарий в systemd-logind.conf выше состояний проверки LXC "монтирование cgroup не работает в LXC, там это использует cgmanager", но это не дает мне понимания, как это должно быть сделано, или как это может работаться вокруг.

Я действительно не уверен, если это - конкретный вопрос LXC (возможно, LXC препятствует тому, чтобы он работал правильно?) или является ли это проблемой systemd-logind. Я должен разъяснить, что в настоящий момент присвоил свой контейнер LXC Ubuntu 14.40 'неограниченному' профилю, чтобы удостовериться, что это не некоторая броская проблема полномочий.

У кого-либо есть понимание на том, что может быть сделано для получения systemd cgroup в контейнере LXC, работающем правильно так, чтобы я мог использовать Специю счастливо?

Править: После проверки моей хост-системы systemd cgroup там, кажется, работает просто великолепно, гм...

Несмотря на недостаток systemd-cgls, я могу все еще предоставить некоторую подобную информацию:

Вот дерево/sys/fs/cgroup/systemd каталога:

ubuntu@ubuntu2:/sys/fs/cgroup/systemd$ tree
.
├── cgroup.clone_children
├── cgroup.event_control
├── cgroup.procs
├── cgroup.sane_behavior
├── lxc
│  ├── cgroup.clone_children
│  ├── cgroup.event_control
│  ├── cgroup.procs
│  ├── notify_on_release
│  ├── tasks
│  └── ubuntu2
│  ├── cgroup.clone_children
│  ├── cgroup.event_control
│  ├── cgroup.procs
│  ├── notify_on_release
│  ├── tasks
│  └── user
│  ├── 1000.user
│  │  ├── c1.session
│  │  │  ├── cgroup.clone_children
│  │  │  ├── cgroup.event_control
│  │  │  ├── cgroup.procs
│  │  │  ├── notify_on_release
│  │  │  └── tasks
│  │  ├── cgroup.clone_children
│  │  ├── cgroup.event_control
│  │  ├── cgroup.procs
│  │  ├── notify_on_release
│  │  └── tasks
│  ├── cgroup.clone_children
│  ├── cgroup.event_control
│  ├── cgroup.procs
│  ├── notify_on_release
│  └── tasks
├── notify_on_release
├── release_agent
├── tasks
└── user
    ├── 1000.user
    │  ├── c2.session
    │  │  ├── cgroup.clone_children
    │  │  ├── cgroup.event_control
    │  │  ├── cgroup.procs
    │  │  ├── notify_on_release
    │  │  └── tasks
    │  ├── cgroup.clone_children
    │  ├── cgroup.event_control
    │  ├── cgroup.procs
    │  ├── notify_on_release
    │  └── tasks
    ├── cgroup.clone_children
    ├── cgroup.event_control
    ├── cgroup.procs
    ├── notify_on_release
    └── tasks

И отображение PIDs на cgroup:

./lxc/ubuntu2/user/1000.user/c1.session/cgroup.procs: 
    860 /bin/login -- 2596 grep --color=auto 860 /bin/login -- 2596 grep --color=auto 860
    1281 -bash 2605 grep --color=auto 1281 -bash 2605 grep --color=auto 1281
    2614 grep --color=auto 2593 grep --color=auto 2593
./lxc/ubuntu2/user/1000.user/cgroup.procs: 
./lxc/ubuntu2/user/cgroup.procs: 
./lxc/ubuntu2/cgroup.procs: 
    1 /sbin/init 194 upstart-udev-bridge --daemon 431 avahi-daemon: running [ubuntu2.local] 487 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 513 upstart-file-bridge --daemon 767 /usr/lib/policykit-1/polkitd --no-debug 811 /usr/sbin/spice-vdagentd -f -s /tmp/xspice-virtio -u /tmp/xspice-uinput -d 862 /sbin/getty -8 38400 tty1 871 /usr/lib/accountsservice/accounts-daemon 903 lightdm --session-child 16 20 915 /bin/sh /usr/lib/lightdm/lightdm-greeter-session /usr/sbin/unity-greeter 921 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session 941 /usr/lib/gvfs/gvfsd 958 lightdm --session-child 12 20 961 init --user --startup-event indicator-services-start 971 /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service 1042 /usr/bin/pulseaudio --start --log-target=syslog 1045 /usr/lib/rtkit/rtkit-daemon 1065 /usr/lib/x86_64-linux-gnu/gconf/gconfd-2 1069 /usr/lib/x86_64-linux-gnu/notify-osd 1222 /usr/lib/colord/colord 1281 -bash 2626 grep --color=auto 1 /sbin/init 194 upstart-udev-bridge --daemon 431 avahi-daemon: running [ubuntu2.local] 487 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 513 upstart-file-bridge --daemon 767 /usr/lib/policykit-1/polkitd --no-debug 811 /usr/sbin/spice-vdagentd -f -s /tmp/xspice-virtio -u /tmp/xspice-uinput -d 862 /sbin/getty -8 38400 tty1 871 /usr/lib/accountsservice/accounts-daemon 903 lightdm --session-child 16 20 915 /bin/sh /usr/lib/lightdm/lightdm-greeter-session /usr/sbin/unity-greeter 921 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session 941 /usr/lib/gvfs/gvfsd 958 lightdm --session-child 12 20 961 init --user --startup-event indicator-services-start 971 /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service 1042 /usr/bin/pulseaudio --start --log-target=syslog 1045 /usr/lib/rtkit/rtkit-daemon 1065 /usr/lib/x86_64-linux-gnu/gconf/gconfd-2 1069 /usr/lib/x86_64-linux-gnu/notify-osd 1222 /usr/lib/colord/colord 1281 -bash 2626 grep --color=auto 1
    194 upstart-udev-bridge --daemon 2635 grep --color=auto 194 upstart-udev-bridge --daemon 2635 grep --color=auto 194
    202 dbus-daemon --system --fork 2644 grep --color=auto 202 dbus-daemon --system --fork 2644 grep --color=auto 202
    252 /lib/systemd/systemd-udevd --daemon 2653 grep --color=auto 252 /lib/systemd/systemd-udevd --daemon 2653 grep --color=auto 252
    320 /lib/systemd/systemd-logind 2662 grep --color=auto 320 /lib/systemd/systemd-logind 2662 grep --color=auto 320
    402 /usr/sbin/cupsd -f 2671 grep --color=auto 402 /usr/sbin/cupsd -f 2671 grep --color=auto 402
    420 rsyslogd 2680 grep --color=auto 420 rsyslogd 2680 grep --color=auto 420
    431 avahi-daemon: running [ubuntu2.local] 2689 grep --color=auto 431 avahi-daemon: running [ubuntu2.local] 2689 grep --color=auto 431
    440 avahi-daemon: chroot helper 2698 grep --color=auto 440 avahi-daemon: chroot helper 2698 grep --color=auto 440
    459 /usr/lib/cups/notifier/dbus dbus:// 2707 grep --color=auto 459 /usr/lib/cups/notifier/dbus dbus:// 2707 grep --color=auto 459
    460 /usr/lib/cups/notifier/dbus dbus:// 2716 grep --color=auto 460 /usr/lib/cups/notifier/dbus dbus:// 2716 grep --color=auto 460
    487 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 2725 grep --color=auto 487 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 2725 grep --color=auto 487
    505 upstart-socket-bridge --daemon 2734 grep --color=auto 505 upstart-socket-bridge --daemon 2734 grep --color=auto 505
    513 upstart-file-bridge --daemon 2743 grep --color=auto 513 upstart-file-bridge --daemon 2743 grep --color=auto 513
    643 /usr/sbin/ModemManager 2752 grep --color=auto 643 /usr/sbin/ModemManager 2752 grep --color=auto 643
    690 NetworkManager NetworkManager
    692 /sbin/getty -8 38400 tty4 2770 grep --color=auto 692 /sbin/getty -8 38400 tty4 2770 grep --color=auto 692
    702 /sbin/getty -8 38400 tty2 2779 grep --color=auto 702 /sbin/getty -8 38400 tty2 2779 grep --color=auto 702
    703 /sbin/getty -8 38400 tty3 /sbin/getty -8 38400 tty3
    739 /usr/sbin/sshd -D 2797 grep --color=auto 739 /usr/sbin/sshd -D 2797 grep --color=auto 739
    754 acpid -c /etc/acpi/events -s /var/run/acpid.socket 2806 grep --color=auto 754 acpid -c /etc/acpi/events -s /var/run/acpid.socket 2806 grep --color=auto 754
    755 cron 2815 grep --color=auto 755 cron 2815 grep --color=auto 755
    756 whoopsie 2824 grep --color=auto 756 whoopsie 2824 grep --color=auto 756
    757 atd 2833 grep --color=auto 757 atd 2833 grep --color=auto 757
    767 /usr/lib/policykit-1/polkitd --no-debug /usr/lib/policykit-1/polkitd --no-debug
    772 /usr/sbin/kerneloops 2851 grep --color=auto 772 /usr/sbin/kerneloops 2851 grep --color=auto 772
    811 /usr/sbin/spice-vdagentd -f -s /tmp/xspice-virtio -u /tmp/xspice-uinput -d 2860 grep --color=auto 811 /usr/sbin/spice-vdagentd -f -s /tmp/xspice-virtio -u /tmp/xspice-uinput -d 2860 grep --color=auto 811
    847 lightdm 2869 grep --color=auto 847 lightdm 2869 grep --color=auto 847
    862 /sbin/getty -8 38400 tty1 2878 grep --color=auto 862 /sbin/getty -8 38400 tty1 2878 grep --color=auto 862
    868 /usr/bin/X -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch 2887 grep --color=auto 868 /usr/bin/X -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch 2887 grep --color=auto 868
    871 /usr/lib/accountsservice/accounts-daemon 2896 grep --color=auto 871 /usr/lib/accountsservice/accounts-daemon 2896 grep --color=auto 871
    897 /usr/sbin/cups-browsed 2905 grep --color=auto 897 /usr/sbin/cups-browsed 2905 grep --color=auto 897
    903 lightdm --session-child 16 20 2914 grep --color=auto 903 lightdm --session-child 16 20 2914 grep --color=auto 903
    915 /bin/sh /usr/lib/lightdm/lightdm-greeter-session /usr/sbin/unity-greeter 2923 grep --color=auto 915 /bin/sh /usr/lib/lightdm/lightdm-greeter-session /usr/sbin/unity-greeter 2923 grep --color=auto 915
    921 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session 2932 grep --color=auto 921 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session 2932 grep --color=auto 921
    922 /usr/sbin/unity-greeter 2941 grep --color=auto 922 /usr/sbin/unity-greeter 2941 grep --color=auto 922
    924 /usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately 2950 grep --color=auto 924 /usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately 2950 grep --color=auto 924
    930 /bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3 2959 grep --color=auto 930 /bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3 2959 grep --color=auto 930
    936 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session 2968 grep --color=auto 936 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session 2968 grep --color=auto 936
    941 /usr/lib/gvfs/gvfsd 2977 grep --color=auto 941 /usr/lib/gvfs/gvfsd 2977 grep --color=auto 941
    949 /usr/lib/dconf/dconf-service 2986 grep --color=auto 949 /usr/lib/dconf/dconf-service 2986 grep --color=auto 949
    958 lightdm --session-child 12 20 2995 grep --color=auto 958 lightdm --session-child 12 20 2995 grep --color=auto 958
    961 init --user --startup-event indicator-services-start 3004 grep --color=auto 961 init --user --startup-event indicator-services-start 3004 grep --color=auto 961
    963 nm-applet 3013 grep --color=auto 963 nm-applet 3013 grep --color=auto 963
    966 /usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service 3022 grep --color=auto 966 /usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service 3022 grep --color=auto 966
    967 /usr/lib/x86_64-linux-gnu/indicator-bluetooth/indicator-bluetooth-service 3031 grep --color=auto 967 /usr/lib/x86_64-linux-gnu/indicator-bluetooth/indicator-bluetooth-service 3031 grep --color=auto 967
    968 /usr/lib/x86_64-linux-gnu/indicator-power/indicator-power-service /usr/lib/x86_64-linux-gnu/indicator-power/indicator-power-service
    971 /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service 3049 grep --color=auto 971 /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service 3049 grep --color=auto 971
    978 /usr/lib/x86_64-linux-gnu/indicator-keyboard-service --use-gtk 3058 grep --color=auto 978 /usr/lib/x86_64-linux-gnu/indicator-keyboard-service --use-gtk 3058 grep --color=auto 978
    979 /usr/lib/unity-settings-daemon/unity-settings-daemon 3067 grep --color=auto 979 /usr/lib/unity-settings-daemon/unity-settings-daemon 3067 grep --color=auto 979
    985 /usr/lib/upower/upowerd 3076 grep --color=auto 985 /usr/lib/upower/upowerd 3076 grep --color=auto 985
    986 /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service 3085 grep --color=auto 986 /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service 3085 grep --color=auto 986
    987 /usr/lib/x86_64-linux-gnu/indicator-session/indicator-session-service 3094 grep --color=auto 987 /usr/lib/x86_64-linux-gnu/indicator-session/indicator-session-service 3094 grep --color=auto 987
    993 /usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service 3103 grep --color=auto 993 /usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service 3103 grep --color=auto 993
    1042 /usr/bin/pulseaudio --start --log-target=syslog 3112 grep --color=auto 1042 /usr/bin/pulseaudio --start --log-target=syslog 3112 grep --color=auto 1042
    1045 /usr/lib/rtkit/rtkit-daemon 3121 grep --color=auto 1045 /usr/lib/rtkit/rtkit-daemon 3121 grep --color=auto 1045
    1065 /usr/lib/x86_64-linux-gnu/gconf/gconfd-2 3130 grep --color=auto 1065 /usr/lib/x86_64-linux-gnu/gconf/gconfd-2 3130 grep --color=auto 1065
    1069 /usr/lib/x86_64-linux-gnu/notify-osd 3139 grep --color=auto 1069 /usr/lib/x86_64-linux-gnu/notify-osd 3139 grep --color=auto 1069
    1222 /usr/lib/colord/colord 3148 grep --color=auto 1222 /usr/lib/colord/colord 3148 grep --color=auto 1222
./lxc/cgroup.procs: 
./user/1000.user/c2.session/cgroup.procs: 
./user/1000.user/cgroup.procs: 
./user/cgroup.procs: 
./cgroup.procs: 
1
задан 29 November 2014 в 16:56

2 ответа

Я заставил spice-vdagentd работать, запустив его с опцией -X, чтобы отключить интеграцию systemd-login.

https://bugs.launchpad.net/ubuntu/+source/spice-vdagent/+bug/1633609?comments=all

1
ответ дан 11 November 2019 в 02:30

Смотрите здесь:

https://s3hh.wordpress.com/2014/04/18/xspice-in-containers /

, Который является блог-сайтом одного из разработчиков LXC.

Он также мог бы интересоваться Вашим подходом/прогрессом.

0
ответ дан 11 November 2019 в 02:30

Другие вопросы по тегам:

Похожие вопросы: