Ubuntu 작업 공간에서 열려 있는 애플리케이션(가급적 프로세스)을 격리하는 방법은 무엇입니까?

Ubuntu 작업 공간에서 열려 있는 애플리케이션(가급적 프로세스)을 격리하는 방법은 무엇입니까?

저는 일과 공부를 병행하므로 각 작업에는 별도의 탭 세트가 필요합니다. 예를 들어 업무용으로는 업무 관련 탭, vscode, obsidian.md 등이 있는 Chrome이지만 연구용으로는 Chrome이지만 다른 탭, overleaf, pycharm, todoist 등이 있습니다.

내장된 작업 공간을 사용하는 경우 문제는 한 작업 공간에서 동일한 응용 프로그램을 열 때 다른 작업 공간에서 해당 응용 프로그램의 창을 열어 작업 공간을 전환한다는 것입니다.

텔레그램, 스포티파이 및 유사한 앱의 여러 인스턴스를 열 수 있도록 탭이 독립적이고 프로세스와 분리되는 것이 바람직합니다. 이를 달성하는 한 가지 방법은 별도의 사용자를 갖는 것입니다. 그러나 사용자 간에 전환하면 하나 또는 다른 사용자 인스턴스가 절전 모드로 전환되거나 종료됩니다.

그래서 내 질문은: 가능하다면 Ubuntu 작업 공간에서 열려 있는 응용 프로그램이나 프로세스를 어떻게 격리할 수 있습니까?

답변1

여러 가지 방법이 있습니다:

  1. *전환하지 말고 별도의 사용자를 사용하세요.: 전환할 필요가 없습니다. 로그인한 동안 다른 Linux 사용자의 프로세스를 실행하고 디스플레이 시스템(X11 또는 wayland)에 대한 액세스 권한을 부여할 수 있습니다. 실제로는 다른 사용자로 작업을 실행하고 있습니다.
  2. XDG 표준 디렉토리를 사용하여 구성 및 런타임 리소스 분리많은(현재 대부분) 애플리케이션은 사용자를 변경하지 않고 (가장 중요한) 환경 변수로 지정된 경로에 공용 리소스를 저장합니다 XDG_CONFIG_HOME. 이러한 사항을 변경하면 기본적으로 프로그램을 시작하기 전에 기본적으로 실행되지 않는 설정, 소켓, 캐시 및 항목을 기본값에서 격리한 것입니다.XDG_RUNTIME_DIR
  3. flatpak컨테이너화 도구 로 사용됨: 2. 의 방법과 결합하여 사용되며 flatpak, 컨테이너화된 애플리케이션에 적합한 프런트엔드입니다. 이를 사용하면 많은 GUI 응용 프로그램을 설치할 수 있습니다( flathub.com 참조). 기본적으로 를 설정하면 FLATPAK_USER_DIR이러한 장치에 대해 별도의 설치 및 구성 세트를 가질 수 있지만 여전히 런타임 리소스를 공유할 수 있으므로 문제가 발생할 수 있습니다.
  4. 공유할 수 있는 파일과 공유할 수 없는 파일을 제어하는 ​​완전히 컨테이너화된 애플리케이션물론 가장 강력한 솔루션이지만 본격적인 Docker 컨테이너에서 GUI 애플리케이션을 실행할 수 있습니다. 이를 통해 기본 파일 시스템 트리의 어느 부분을 사용할 수 있는지 명시적으로 제어할 수 있으며 이러한 응용 프로그램은 서로를 전혀 볼 수 없습니다.제시 프레이저그녀가 이를 수행하는 방법에 대한 매우 유명한 블로그 게시물이 있습니다(컨테이너 분야의 권위자는 그녀입니다).모으다위의 목적으로 바로 사용할 수 있는 도커 컨테이너입니다.

관련 정보