나는 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