초보자를 위한

초보자를 위한

매뉴얼 페이지에는 다음과 systemd같이 나와 있습니다.

   --system, --user
       For --system, tell systemd to run a system instance, even if the
       process ID is not 1, i.e. systemd is not run as init process.
       --user does the opposite, running a user instance even if the
       process ID is 1. 

pid가 1이고 pid가 1이 아닌 프로세스로 systemd를 실행하는 방법은 무엇입니까?

pid가 1이 아닌 시스템 인스턴스는 무엇을 의미합니까? pid 1의 시스템 인스턴스와 공존할 수 있나요?

시스템 인스턴스는 euid/ruid가 루트인 프로세스를 의미합니까?

사용자 인스턴스는 euid/ruid가 루트가 아닌 프로세스임을 의미합니까?

감사해요.

답변1

초보자를 위한

UNIX 시스템(Linux 포함)에서 모든 프로세스에는프로세스 식별자, 또는PID. 런타임 시 프로세스를 참조하는 데 사용되는 번호입니다. 프로세스가 어떤 PID를 갖게 될지 예측하는 것이 불가능한 경우가 많습니다.

그러나 PID가 항상 1인 특정 프로세스가 하나 있습니다.초기화 프로세스, 이는 시스템 시작 중에 시작되는 첫 번째 프로세스입니다. 모든 중요한 백그라운드 프로세스를 시작하는 것 외에도 몇 가지 다른 목적/작업이 있습니다.

systemd는 프로세스 1로 실행될 수 있는 여러 프로그램 중 하나입니다. 그러나 추가 기능으로 "사용자별 모드"에서 실행하여 해당 특정 사용자에게 필요한 백그라운드 프로세스를 관리할 수도 있습니다(예: 스마트폰에 연결 - 이를 위해서는 Linux의 특수 서버가 필요함). 일반적으로 PID를 통해 무엇을 해야 하는지 알 수 있습니다. 이러한 명령줄 스위치를 사용하면 이를 재정의할 수 있습니다.

이 작업을 수행하는 이유와 방법에 대한 자세한 내용을 보려면 다음을 권장합니다.Arch Linux 위키의 이 페이지. Arch는 엘리트주의적이고 어려운 배포판으로 간주되지만 문서는 매우 훌륭하고 놀라울 정도로 접근하기 쉽습니다.

특정 질문에 답변하려면:

pid가 1이고 pid가 1이 아닌 프로세스로 systemd를 실행하는 방법은 무엇입니까?

PID 1로 systemd를 실행하려면 init 프로그램이어야 합니다. 대부분의 Linux 배포판에는 선택할 수 있는 여러 서비스가 있지만(다른 서비스에는 SysV Init, Upstart, runit 및 OpenRC가 포함됨) 일반적으로 systemd가 기본값입니다. 따라서 이 문제가 귀하의 컴퓨터에 발생했을 수 있습니다.

1이 아닌 PID로 systemd를 실행하려면 다른 상황에서 실행하면 됩니다. 다시 말하지만, 주요 배포판도 위에서 언급한 사용자별 모드에서 systemd를 사용하기 때문에 이러한 현상이 귀하의 컴퓨터에서 이미 발생하고 있을 수 있습니다. 이를 통해 수행할 수 있는 작업에 대해서는 위에 링크된 Arch 위키 페이지를 참조하세요.

시스템 인스턴스는 euid/ruid가 루트인 프로세스를 의미합니까? 사용자 인스턴스는 euid/ruid가 루트가 아닌 프로세스임을 의미합니까?

시스템 인스턴스의 UID 및 EUID는 시작하는 프로그램에 필요한 모든 권한을 제공할 수 있도록 항상 0(루트)입니다. Linux(및 대부분의 UNIX 시스템)에서는 전체 권한으로 시작한 다음 실제로 필요한 권한을 제외한 모든 권한을 포기하는 것이 일반적입니다.

그러나 UID 0을 가진 사용자당 최대 하나의 systemd 인스턴스가 있을 수 있습니다. 루트는 또 다른 사용자일 뿐이라는 점을 기억하세요. 대부분의 최신 Linux 배포판에서는 이러한 일이 발생하지 않도록 기본적으로 조치를 취하지만 루트로 로그인하는 것도 가능합니다.

마지막 경고

원하지 않는다,어떤 경우든 중요한 작업에 사용하는 머신에서 systemd를 사용하거나 루트로 로그인하거나 기타 부팅 또는 루트 관련 작업을 시도해 보십시오.

답변2

그 사람은 바로잡을 거예요, 문제를 제보했어요https://github.com/systemd/systemd/issues/12843

--systemPID가 1이 아닌 경우에는 사용할 수 없습니다.

관련 정보