3

I am having issues with process control using the signals available to the process abstraction. In the example below you can see there is a perl script which is the parent of the whole tree with a group i.d. of 25235. This GID is inherited by all the children. However one of the children, a shell with the PID of 4205, starts a new GID of 4205.

The reason I am setting a new group id for this branch of the process tree is there are times I want to run kill -9 -4205 killing the sh process and all its children with that share the same GID without affecting the rest of the process tree. I can then restart the shell process and its children. The problem I am having is when I need to kill the whole tree starting with perl script (the parent) If I run kill -9 -25235 (main group i.d.) or kill -9 4678 (parents PID) this will kill the whole tree except the branch which has a different group id. These processes will be re-parented to init.

Is there a way to kill the whole tree regardless of the different GIDs? I suspect session ids may come to play but I have not been able to figure that out if so.

process tree example:

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)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.