Tôi nghĩ bạn có nghĩa là PGID, viết tắt của ID nhóm quy trình .
Khi một quá trình được rẽ nhánh, nó thừa hưởng PGID từ cha mẹ của nó. PGID thay đổi khi một quá trình trở thành trưởng nhóm quy trình , sau đó PGID của nó được sao chép từ PID của nó. Từ đó trở đi, đứa trẻ mới xử lý nó sinh ra và con cháu của chúng, thừa hưởng PGID đó (trừ khi chúng bắt đầu các nhóm quy trình mới của riêng chúng).
Trong một shell có kiểm soát công việc, chẳng hạn như hầu hết các shell tương tác, mỗi công việc được đặt trong nhóm quy trình riêng của nó. Nếu bạn chạy tập lệnh shell, quy trình shell chạy tập lệnh sẽ là nhóm trưởng và PGID sẽ bằng với PID của nó.
Trong một trình bao không có kiểm soát công việc, như hầu hết các trình bao được sử dụng để chạy các tập lệnh, các lệnh được chạy trong nhóm quy trình của trình bao.
Cú pháp kill -- -N
giết chết tất cả các quy trình trong nhóm bằng PGID = N. Bạn không thể sử dụng nó với một PID tùy ý, chỉ có PID của một nhà lãnh đạo nhóm quy trình, vì đó là PGID. Đây thực chất là cách vỏ
kill %jobid
cú pháp hoạt động - nó nội bộ chuyển %jobid
sang PGID của công việc và gửi tín hiệu đến PGID đó.
Không có cách đơn giản nào để chạy tập lệnh trong nhóm quy trình của chính nó từ tập lệnh shell khác. Tuy nhiên, hãy xem Cách đặt nhóm quy trình của tập lệnh shell cho một số đề xuất.