Другие (все?) пользователи системы как-то вовлечены?

Привет, ребята.

Почему Discourse — я не пробовал другие контейнеры, ни Ubuntu, ни Docker не являются моим оружием выбора — привлекает других (всех обычных?) пользователей?

Когда я запускаю Discourse, от моего имени запускается ряд процессов для пользователя, который, как мне казалось, не имеет ничего общего с Discourse/контейнером. Конечно, это тот пользователь, из-под которого я делаю sudo для развёртывания Discourse. Вот пример:

unicorn_launche─┬─ruby─┬─ruby───23*[{ruby}]
                │      ├─8*[ruby───8*[{ruby}]]
                │      └─7*[{ruby}]
                └─sleep
-> $ ps -Fp 8794
UID          PID    PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
appmgr      8794    8792  0  3829  4320   2 12:17 ?        00:00:00 /bin/bash config/unicorn_launcher -E production -c config/unicorn.conf.rb
-> $ ps -Fp 8792
UID          PID    PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root        8792    8788  0   562   684   4 12:17 ?        00:00:00 runsv unicorn

То, что я вижу/получаю, является ли это всё валидным и легитимным? Если да, то где можно найти страницы руководства (man pages), которые пролили бы на это больше света? Я всё ещё новичок в роли системного администратора Ubuntu/Docker/Discourse.

Когда вы просматриваете процессы вне контейнера, они отображаются как процессы Discourse, запущенные от имени пользователя с UID 1000 на хост-системе.

Причина этого в том, что процессы внутри контейнера выполняются под UID 1000 самого контейнера. :slight_smile:

Это просто странная особенность работы контейнеров Docker. :slight_smile:

Да, это ожидаемо.

Unicorn — это сервис, который обслуживает страницы. Ruby — язык, на котором написан Discourse. Вы можете увидеть, что запуска Unicorn запустил все эти процессы.

Если вы посмотрите на то, что запущено на вашем компьютере с Windows или Mac, вы тоже не будете знать, что означают все эти процессы. :person_shrugging:

Я действительно не уверен, как лучше всего этому научиться. Возможно, документация по Rails? Для нового системного администратора есть множество других вещей, которые, скорее всего, будут более полезны.

Возможно, я выразился немного размыто — меня смутил пользователь, которому (некоторые) процессы принадлежат. Инструменты, которые я использую для контейнеров, делают все мои контейнеры rootless — если требования к сети не делают это невозможным — они обеспечивают удобное и понятное сопоставление реальных UID и subuid, так что сразу видно, что есть что. Спасибо @ClawdiaWolf. Жаль, что этого нет в официальной документации (а не только в коде).

Об этом также обсуждалось здесь:

:slight_smile: