동일한 프로세스 그룹 ID로 여러 프로세스를 실행하는 방법은 무엇입니까?

동일한 프로세스 그룹 ID로 여러 프로세스를 실행하는 방법은 무엇입니까?

나는 killpg 시스템 호출을 사용하는 방법을 배우고 있습니다. 따라서 실험을 위해 동일한 pgid로 두 개의 새로운 프로세스를 시작한 다음 killpg를 사용하여 해당 프로세스를 종료하려고 합니다.

나는 setid에 대해 읽었으므로 다음과 같은 것을 시도했습니다.

setsid gedit & firefox &

그러나 gedit와 firefox라는 두 프로세스는 서로 다른 두 개의 pgid로 끝납니다.

답변1

가능하다면 Firefox와 그 안에 있는 몇 개의 탭을 엽니다. 그런 다음 다음을 수행하십시오.

ps o pid,ppid,pgid,sid,comm

다음과 같은 내용이 표시됩니다.

  PID  PPID  PGID   SID COMMAND
 5121 25145  2628  2628 Web Content
 5881 25145  2628  2628 Web Content
25145     1  2628  2628 firefox-esr

또는 하위 쉘을 사용하여 백그라운드 프로세스를 생성합니다.

$ (sleep 100& gedit&)
$ ps o pid,ppid,pgid,sid,comm
  PID  PPID  PGID   SID COMMAND
 6365  2618  6364 27631 sleep
 6366  2618  6364 27631 gedit

서브쉘이 필요한 이유와 진행 상황에 대한 좋은 설명은 다음과 같습니다.내 하위 프로세스의 PGID가 상위 프로세스의 PID가 아닌 이유는 무엇입니까?

또한보십시오:

man credentials

관련 정보