-
[운영체제] MAC에서 PPID 확인하기CS/운영체제 2023. 5. 2. 20:55
새로운 프로세스를 생성할 때,
fork()
를 이용해서 효율적으로 프로세스를 생성한다는 내용을 공부했다.정말 모든 프로세스들이 이런 방식으로 생성되는지, 그렇다면 각 프로세스의 부모 프로세스는 무엇일지 알아보고자 한다.
PID확인하기
MAC에서는
활성 상태 보기
프로그램에서, 현재 동작하고 있는 프로세스들의 정보를 확인 가능하다.PID 또한 이곳에서 확인이 가능했다.
PPID 확인하기
PPID는 터미널에서 다음과 같은 명령어로 확인이 가능하다.
ps -o ppid= -p <PID>
현재 활발히 동작하고 있는 Goodnotes(16971)의 ppid를 확인해보았다.
Goodnotes의 ppid는 1인것을 확인할 수 있다.
여기서 PID가 1인 프로그램은
launchd라는 프로그램이다.
이번엔, Chrome(643)의 PPID를 확인해 보았다.
마찬가지로 ppid가 1이였다.
마지막으로 Notion(10680)의 PPID를 확인해 보았다.
이것도 마찬가지로 ppid가 1이였다.
Launchd란?
그렇다면
launchd
라는 프로그램이 무엇인지 궁금해진다.launchd is an init and operating system service management daemon created by Apple Inc. as part of macOS to replace its BSD-style init and SystemStarter. There have been efforts to port launchd to FreeBSD and derived systems.
간단하게, 모든 프로세스의 시작이 되고, 다른 프로세스들을 관리하는 데몬의 역할을 한다.
아래 두 사진을 보면 linux 시스템에서의 init과, launchd의 역할이 비슷한 것을 확인할 수 있다.
모든 프로세스는 fork() 시스템 호출을 이용한 방식으로 생성이 되고, 대부분의 부모 프로세스는 launchd이다.
이렇게, 처음에 알아보고자 했던 두 가지 물음이 해결되었다.