> It is irrelevant to the questino you asked. But people often ask "how > do I do XYZ?" when their problem is actually "how do I do ABC?" and > they believe XYZ is the only way (or sometimes, the correct way) to do > ABC. Such people are often wrong; there are often other ways to do ABC. Ah, OK, that's very true, as I know too well from the receiving end.
> If you want to sidestep such questions, a very brief sketch of > why you want to do XYZ can help. In this case, saying something like > "I was looking at a problem which is irrelevant here, because it led me > to wonder if there's some way for the process on the read end of a pipe > to kill the process on the write end without depending on the writing > process getting SIGPIPE" might help make it clear that you're looking > for XYZ in its own right, independent of the ABC that motivated your > initial interest in it. Oh yes, that would have been a much better way to phrase it. > Personally, I would call it a bug in collectd that it leaves SIGPIPE > ignored by plugin children it forks; that is not what least surprise > would lead me to expect. I would say it'd be better for it to catch > SIGPIPE and have the catcher do nothing. That way, it'd get reset for > free upon exec in the child. Yes, I'm going to file a bug with collectd; I'll only need to look up where it may be relying on a child ignoring SIGPIPE. > It occurs to me that you might be able to do it by having the script > kill its entire process group. This may or may not do what you want, > depending on what collectd and the shell in question do with process > groups. It does seem to me like one of the cleaner possible solutions. I must admit I don't know enough of the details of process groups, let alone the question what Poetterix has done to them (while collect_envstat surely only needs to work on NetBSD, derivatives may need to work on Linux).