Итак, я столкнулся с той же проблемой, когда пытался заставить работать непривилегированные контейнеры LXC на CentOS 7. Я не хотел использовать cgmanager
, потому что мне не нравится внедрять дополнительные службы, если они не требуются. В итоге я поставил исправления для systemd, используя некоторые исправления из пакета ubuntu и одно собственное исправление для расширения списка контроллеров cgroup. У меня есть исходники, необходимые для сборки RPM, на моем аккаунте GitHub по адресу https://github.com/CtrlC-Root/rpmdist. У меня также есть исправленные версии shadow-utils (для subuids и subgids) и pam (для loginuid). После установки этих RPM и настройки пользователя для запуска непривилегированных контейнеров (назначение subuids и subgids, распределение veth пар в lxc-usernet, создание .config/lxc/default.conf и т.д.) я могу запускать непривилегированные контейнеры LXC просто отлично.
EDIT: Еще одна причина, по которой я не хотел использовать cgmanager, заключается в том, что я не хотел, чтобы мои обычные пользователи вообще использовали sudo. Обычные пользователи должны иметь возможность войти в систему, и все должно "просто работать" из коробки.
Вы можете прочитать для -n 1
и прочитать следующие два, если первый \033
и реагировать соответствующим образом. В противном случае обработайте номер напрямую.
#!/bin/bash
read -n1 c
case "$c" in
(1) echo One. ;;
(2) echo Two. ;;
($'\033')
read -t.001 -n2 r
case "$r" in
('[A') echo Up. ;;
('[B') echo Down. ;;
esac
esac