Linux에서 ppid는 상위 프로세스의 PID, 즉 상위 프로세스의 프로세스 ID 번호를 나타냅니다. 프로세스가 생성되면 이를 생성한 프로세스를 상위 프로세스라고 하며, 하위 프로세스는 PPID를 사용하여 상위 프로세스가 누구인지 표시합니다. "ps -ef | grep process name" 명령을 실행하여 볼 수 있습니다. 출력 결과의 세 번째 열은 ppid 값입니다.
이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.
프로세스에는 여러 속성 매개변수가 포함되어 있습니다. ps 명령을 사용하면 현재 시스템의 프로세스에 대한 자세한 정보를 볼 수 있습니다. 예:
[root@localhost ~]# ps -le F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIMECMD 4 S 0 1 0 0 80 0 - 718 - ? 00:00:02 init 1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd …省略部分输出…
각 프로세스에 F, S, UID, PID 등 이러한 속성 매개변수는 프로세스가 처리되는 순서, 액세스할 수 있는 리소스 등을 결정하며 시스템 관리자와 프로그래머 모두에게 매우 중요합니다.
다음 글에서는 UID, PID, PPID와 같은 일반적인 속성 매개변수를 소개합니다.
UID (Real User ID)
UID는 User Identification의 약어입니다. UID 사용자가 등록되면 시스템에서 자동으로 UID 값을 제공합니다. 이 사용자에게 번호를 부여한다는 의미입니다.
프로세스의 작성자와 루트 사용자만이 프로세스를 운영할 수 있는 권한을 가지므로 프로세스의 작성자(즉, 소유자)를 기록하는 것이 매우 필요합니다. 프로세스의 UID는 프로세스 작성자의 사용자 ID 번호로, 프로세스 소유자를 식별하는 데 사용됩니다.
EUID(유효 사용자 ID)
Linux는 UID 외에도 프로세스에 대해 EUID라는 "유효 사용자 ID 번호"를 저장합니다. 이 특수 UID 번호는 특정 리소스 및 파일에 대한 프로세스의 액세스 권한을 결정하는 데 사용됩니다. 대부분의 경우 유명한 setuid 프로그램을 제외하고 프로세스의 UID와 EUID는 동일합니다.
그렇다면 setuid 프로그램이란 무엇일까요? 앞서 언급했듯이 passwd 명령을 사용하면 사용자는 로그인 비밀번호를 수정할 수 있습니다. 그런데 독자들이 이 문제를 고려한 적이 있습니까? 비밀번호는 /etc/shadow 파일에 저장되어 있는데, 이 파일은 일반 사용자가 읽을 수 없습니다. 그렇다면 사용자가 섀도우 파일을 수정하여 비밀번호를 변경할 수 있는 이유는 무엇일까요?
이것은 setuid의 장점입니다. 실행 단계에서 passwd에 파일 소유자(즉, 루트)의 권한을 부여함으로써 사용자는 일시적으로 섀도우 파일을 수정할 수 있는 능력을 가질 수 있습니다(물론 이 능력은 제한되어 있습니다). . 따라서 passwd는 일반적인 setuid 프로그램으로, UID는 현재 이 명령을 실행 중인 사용자 ID이고, EUID는 루트 사용자의 ID(즉, 0)입니다.
PID(프로세스 ID 번호)
시스템은 각 사용자에게 신원을 식별하는 ID 번호(UID)를 할당합니다. 마찬가지로 프로세스에도 PID(Process Identification)라고 하는 ID 번호가 있습니다.
ID를 사용하여 프로세스를 결정하는 것이 매우 유익하다는 점을 알아야 합니다. 컴퓨터의 경우 문자열을 인식하는 것보다 숫자를 인식하는 것이 항상 더 편리하기 때문입니다. Linux는 매우 "의미 있는" 프로세스를 이해할 필요가 없습니다. 인간에게.
Linux 자체는 PID를 사용하여 프로세스를 식별할 뿐만 아니라 사용자가 프로세스를 관리할 때 해당 PID 번호를 제공하도록 요구합니다. 실제로 거의 모든 프로세스 관리 도구는 프로세스 이름 대신 PID 번호를 허용합니다.
PPID(상위 프로세스의 PID)
Linux에서는 모든 프로세스가 다른 프로세스에 의해 생성되어야 합니다(시스템 부팅 시 커널에 의해 자율적으로 생성 및 설치되는 프로세스 제외). 프로세스가 생성되면 이를 생성한 프로세스를 상위 프로세스라고 하고, 해당 프로세스를 하위 프로세스라고 합니다.
자식 프로세스는 PPID를 사용하여 "아버지"가 누구인지 나타냅니다. PPID가 상위 프로세스의 PID를 참조한다는 것은 이해하기 쉽습니다.
위의 설명에서는 표현과 이해의 편의를 위해 "만들다"라는 단어가 여러 번 사용되었습니다. 실제로 Linux에서는 프로세스를 "허공에서" 만들 수 없습니다. 애플리케이션이 프로세스를 "생성"할 수 있도록 시스템 호출을 제공하지 않습니다. 애플리케이션은 자체 복제를 통해서만 새 프로세스를 생성할 수 있습니다.
설명:
PID와 PPID는 모두 0이 아닌 정수입니다.
PID는 고유하며 하나의 PID는 하나의 프로세스만 식별합니다.
한 프로세스에 의해 생성된 또 다른 새로운 프로세스를 하위 프로세스라고 합니다. 반대로, 자식 프로세스를 생성하는 프로세스를 부모 프로세스라고 합니다.
일반 사용자 프로세스의 경우 상위 프로세스는 이를 실행하는 셸입니다. Linux의 경우 셸은 bash입니다.
프로세스의 PID 및 PPID를 보는 Linux 방법
예: nginx 프로세스의 PID 번호 보기, ps -ef | grep nginx
실행 후 프로세스의 PID 및 PPID 번호를 확인할 수 있습니다. 반환
이 명령은 확장을 사용하여 프로세스를 강제로 종료합니다
예, nginx 프로세스를 강제로 종료
관련 권장 사항: "Linux 비디오 튜토리얼"
위 내용은 리눅스 ppid는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!