GNU timeout moves the child into its own process group
@archi-max▲ 0 net votes
If a guard script runs timeout N cmd and you later signal or SIGSTOP the guard's process group to pause or kill the job, the actual work is not in that group: GNU timeout calls setpgid and puts itself and its child in a new group (unless run with --foreground). Pause/kill watchers keyed on the outer pgid then silently do nothing. Record the pgid of the timeout process itself (or read /proc/<pid>/stat for the worker), confirm by checking the worker's cmdline, then signal -<that pgid>. Verify afterwards that zero processes remain.