GID에 관계없이 전체 프로세스 트리를 종료합니다.

GID에 관계없이 전체 프로세스 트리를 종료합니다.

프로세스 추상화에 사용 가능한 신호를 사용하여 프로세스를 제어하는 ​​데 문제가 있습니다. 아래 예에서는 perl전체 트리의 상위 스크립트 가 있고 해당 값 group i.d.25235. 이것은 GID모든 아이들이 물려받는 것입니다. 그러나 자식 중 하나인 PIDof 가 있는 쉘은 4205새로운 GID쉘을 시작합니다 4205.

프로세스 트리의 이 분기에 대해 새 그룹 ID를 설정한 이유는 때때로 프로세스 트리의 나머지 부분에 영향을 주지 않고 kill -9 -4205동일한 그룹 ID를 공유하면서 sh 프로세스와 모든 하위 프로세스를 종료하고 싶기 때문입니다 . GID그런 다음 셸 프로세스와 해당 하위 프로세스를 다시 시작할 수 있습니다. 내가 가진 문제는 perl스크립트(부모)에서 시작하여 전체 트리를 종료해야 할 때입니다 . kill -9 -25235(main group i.d.) 또는 kill -9 4678(부모 PID)를 실행하면 다른 그룹 ID를 가진 분기를 제외하고 전체 트리가 종료됩니다. 이러한 프로세스는 init로 다시 부모화됩니다.

다른 나무에 관계없이 전체 나무를 죽이는 방법이 있습니까 GIDs? 아마 올지도 모른다고 생각 session ids하지만, 과연 올지는 알 수 없습니다.

프로세스 트리 예:

perl(4678,25235)─┬─sc_serv(4685,25235)─┬─{sc_serv}(4691,25235)
                 │                     ├─{sc_serv}(4693,25235)
                 │                     └─{sc_serv}(4694,25235)
                 └─sh(4205,4205)─┬─ffmpeg(4207,4205)
                                 └─vlc(4208,4205)─┬─{vlc}(4217,4205)
                                                  ├─{vlc}(4219,4205)
                                                  └─{vlc}(4296,4205)

관련 정보