On Monday 17 December 2001 09:53, Sean Hunter wrote: > > Hmm. Looking at killall5 source I see > > > > kill(-1, STOP); > > for(each proc with p.sid!=my_sid) kill(proc, sig); > > kill(-1, CONT); > > > > I guess STOP will stop killall5 too? Not good indeed. > > > > We have two choices: either back it out or find a sane way to implement > > killall5 with new kill -1 behaviour. > > Couldn't it just do: > > sigset_t new; > sigset_t savemask; > sigfillset (&new); > sigprocmask (SIG_BLOCK, &new, &savemask); > > kill(-1, STOP); > for(each proc with p.sid!=my_sid) kill(proc, sig); > kill(-1, CONT); > > sigprocmask (SIG_SETMASK, &savemask, (sigset_t *) 0); > > ... in other words, block signals, do the killing, then unblock? STOP cannot be blocked or trapped AFAIK. -- vda