저는 Mac을 사용하고 있으며 다음 인용문은 다음과 같습니다 man termios
.
제어 터미널이 세션과 연관될 때, 그 전경 프로세스 그룹은 세션 리더의 프로세스 그룹으로 설정됩니다.
이를 확인하기 위해 터미널 창을 열고 sleep
포그라운드에서 명령을 실행한 후 다른 터미널 창을 열고 다음을 실행했습니다 ps
.
$ ps -o pid,pgid,tpgid,sess,stat,command,tty
PID PGID TPGID SESS STAT COMMAND TTY
44606 44606 45006 0 S -bash ttys000
45006 45006 45006 0 S+ sleep 3000 ttys000
포그라운드 프로세스 그룹을 다음과 같이 표시합니다 45006
. 세션 리더를 얻기 위해 getsid
일부 C 코드를 사용하고 작성한 getpgid
후 다음 정보를 얻었습니다.
pid: 45006 pgid: 45006 sid: 44605
pid: 44605 pgid: 44605 sid: 44605
세션 리더는 44605
로그인 프로세스입니다.
$ ps -o pid,pgid,tpgid,sess,stat,command,tty -p 44605
PID PGID TPGID SESS STAT COMMAND TTY
44605 44605 45006 0 Ss login -pfl mz /b ttys000
분명히 포그라운드 프로세스 그룹 45006
은 세션 리더 프로세스 그룹과 다릅니다 44605
. 무엇이 빠졌습니까? 감사해요!