Почему 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.
Unicorn — это сервис, который обслуживает страницы. Ruby — язык, на котором написан Discourse. Вы можете увидеть, что запуска Unicorn запустил все эти процессы.
Если вы посмотрите на то, что запущено на вашем компьютере с Windows или Mac, вы тоже не будете знать, что означают все эти процессы.
Я действительно не уверен, как лучше всего этому научиться. Возможно, документация по Rails? Для нового системного администратора есть множество других вещей, которые, скорее всего, будут более полезны.
Возможно, я выразился немного размыто — меня смутил пользователь, которому (некоторые) процессы принадлежат. Инструменты, которые я использую для контейнеров, делают все мои контейнеры rootless — если требования к сети не делают это невозможным — они обеспечивают удобное и понятное сопоставление реальных UID и subuid, так что сразу видно, что есть что. Спасибо @ClawdiaWolf. Жаль, что этого нет в официальной документации (а не только в коде).