Hi,

I'm wondering what the reason for IgnoreSIGPIPE to default to true is.
The documentation just states that

    Defaults to true because SIGPIPE generally is useful only in shell
    pipelines.

But I don't think that this alone is a good reason to change the default.

It can confuse programs which use pipes and do not expect their signal
handlers to be messed with, see [1] for the same issue in Python. As
another example, "tar xf *.tar.gz" will fail on some archives if SIGPIPE
is ignored[2].

Another problem is that this not only affects the program started by
systemd itself, but leaks into all child processes as well. See [3] for
a bug report against cron due to this (yes, can be worked around by
setting IgnoreSIGPIPE=false for cron.service, but I believe systemd is
wrong here).

Ansgar

  [1] <http://bugs.python.org/issue1652>
  [2] I think the .gz needs trailing zeros in either the compressed or
      uncompressed data stream. I could look at the file it failed
      with...
  [3] <https://bugs.debian.org/756047>
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to