다른(모든?) 시스템 사용자도 관련이 있나요?

여러분 안녕하세요.

왜 Discourse — 다른 컨테이너는 시도해 본 적도 없고, Ubuntu도 Docker도 제가 주로 사용하는 도구가 아닙니다 — 가 다른(모든 일반?) 사용자를 포함하게 되나요?

Discourse를 시작하면 제가 생각하기에 Discourse/컨테이너와는 전혀 무관할 것 같은 사용자를 대신하여 여러 프로세스가 시작됩니다. 분명히 Discourse 배포를 위해 sudo를 실행하는 사용자입니다. 여기 있습니다:

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 페이지는 어디에 있을까요? Ubuntu/Docker/Discourse의 시스템 관리자로써 저는 아직 초보입니다.

컨테이너 외부에서 프로세스를 확인하면, 호스트에서 UID 1000인 사용자로 실행되는 Discourse 관련 프로세스가 표시됩니다.

이렇게 표시되는 이유는 컨테이너 내부의 프로세스가 컨테이너의 UID 1000으로 실행되고 있기 때문입니다. :slight_smile:

Docker 컨테이너의 동작 방식에서 오는 다소 특이한 점입니다. :slight_smile:

네, 예상되는 현상입니다.

Unicorn은 페이지를 서빙하는 도구이고, Ruby는 Discourse가 작성된 프로그래밍 언어입니다. Unicorn 런처가 이 모든 프로세스를 시작했음을 확인할 수 있습니다.

Windows나 Mac 컴퓨터에서 실행 중인 프로세스를 살펴보면, 그 모든 것이 무엇인지 알지 못하는 경우가 많습니다. :person_shrugging:

이를 배우는 방법에 대해서는 정확히 잘 모르겠습니다. Rails 문서가 도움이 될 수도 있겠네요. 새로운 시스템 관리자에게는 이보다 더 유용한 것들이 훨씬 많습니다.

아마도 제가 약간 모호하게 표현한 것 같습니다. 저를 혼란스럽게 한 부분은 어떤 프로세스가 (일부) 사용자에게 속하는지에 관한 것이었습니다. 저는 컨테이너에 사용하는 도구들을 통해 모든 컨테이너를 루트리스(rootless)로 구성합니다 — 네트워크 요구사항으로 인해 불가능한 경우가 아니라면 —. 이렇게 하면 실제 UID와 서브UID 간의 매핑이 명확하게 이루어져 무엇이 무엇인지 쉽게 파악할 수 있습니다. @ClawdiaWolf님, 감사합니다. 이 내용이 공식 문서에도(코드에만 있는 것이 아니라) 포함되기를 바랍니다.

여기서도 논의되었습니다:

:slight_smile: