In current master, passt.c:main() has an incorrect check on signal() return value: if (sigaction(SIGCHLD, &sa, NULL) || signal(SIGPIPE, SIG_IGN)) die("Couldn't install signal handlers"); signal() returns SIG_ERR on failure or the previous setting if present. If a setting has been inherited from the parent (as is the case when starting from systemd with the default setting of IgnoreSIGPIPE=yes), the check will fail. The if statement should check for SIG_ERR for the SIGPIPE case, or alternatively switch to sigaction() since that's used for everything else in the code. -Valtteri (please cc on replies)