Как я могу создать и использовать Linux cgroups в качестве некорневого пользователя?

На самом деле существует два решения этой проблемы, о которой я знаю.

Оба RDP использования для соединения с фоновым сеансом пользователя, к которому можно получить доступ, в то время как другой пользователь зарегистрирован в фактической машине.

Каждого называют iRapp http://www.coderebel.com/products/irapp

"Используйте свой Mac и ПК одновременно через единственный монитор, мышь и клавиатуру. Добро пожаловать в Швейцарию вычислений... iRAPP является приложением, которое предоставляет Вам связный, интерактивный доступ к Mac через Ваш ПК. Можно принять решение просмотреть Mac на смешанной сессии с Windows и операционными системами ОС в одно окно, или можно использовать созданный в Протоколе удаленного рабочего стола для просмотра его в отдельном окне. Так или иначе iRAPP позволяет Вам открываться и работать над приложениями Mac прямо на Вашем ПК в среде Windows. Копия и вставка, сохраните документы, открытые программы, совместно используйте файлы – загружают бесплатную 14-дневную пробную версию теперь!"

Другой "терминальный сервер подключения воды"..

Я отправил бы URL, но у меня нет достаточного количества cred.

Мировой лидер в Службах удаленных рабочих столов Mac и Поставщик первого Терминального сервера Mac. Другие альтернативы Виртуализации Mac включают Удаленный рабочий стол Mac. Мы Предоставляем решения для всех отраслей промышленности включая FileMaker и Творческих Пользователей Комплекта к организациям, надеющимся развертывать Mac OS X в Windows или создавать многопользовательский iPhone или iPad среды SDK.

irapp надеется быть большим количеством потребителя дружественный выбор, по моему скромному мнению. Я пытался использовать его и имел некоторые проблемы при входе в систему, но это, кажется, много похоже на MS RDP и может использовать те же клиенты.

21
задан 23 May 2017 в 15:41
4 ответа

Вы не можете сделать это как обычный пользователь. Но вы можете настроить cgroup как root и сделать ее настраиваемой вашим пользователем.

Если у вас еще нет контроллеров cgroups по умолчанию, смонтированных, например, systemd:

$ sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$ sudo mkdir /sys/fs/cgroup/cpuset
$ sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset

Create a cgroup:

$ sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$ sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}

Теперь вы можете изменить конфигурация вашей контрольной группы как обычного пользователя:

$ echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus

Добавьте процесс в эту группу:

$ ./my_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks

Или создайте подгруппу:

$ mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$ echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$ ./my_other_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks
18
ответ дан 2 December 2019 в 20:06

Существует серия статей о LWN по контрольным группам, см. часть 1 , или посмотрите там поиск. Systemd включает набор помощников для управления (процессами) cgroups.

0
ответ дан 2 December 2019 в 20:06

Если вы используете Ubuntu, вы (пользователь root) можете установить cgroup-lite и добавить то, что вам нужно, в /etc/cgconfig.conf, включая имя пользователя ( s) может изменять конфигурацию контрольной группы. Он запускается при загрузке.

В противном случае вы (пользователь root) не могли бы добавить свой собственный сценарий для запуска во время загрузки.

1
ответ дан 2 December 2019 в 20:06

Теоретически вы должны иметь возможность запускать процессы в переходных (временных) контрольных группах, например.

$ systemd-run --user --scope /bin/bash

но на самом деле, systemd не работает во многих дистрибутивах Linux и с ним что-то вроде сбоя

polkitd(authority=local)[1300]: Registered Authentication Agent for unix-process:10428:26722972 (system bus name :1.478 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_DK.utf8)
systemd[2601]: run-rbe547d13ad2c41d7857ea9e660e51ab9.scope: Failed to add PIDs to scope's control group: Permission denied
systemd[2601]: run-rbe547d13ad2c41d7857ea9e660e51ab9.scope: Failed with result 'resources'.
systemd[2601]: Failed to start /bin/bash.
polkitd(authority=local)[1300]: Unregistered Authentication Agent for unix-process:10428:26722972 (system bus name :1.478, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_DK.utf8) (disconnected from bus)

я не знаю точную причину этого сбоя, но пока эта ошибка не будет исправлена, вам нужен root доступ для настройки групп управления (cgroup).

0
ответ дан 4 September 2021 в 13:39

Теги

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