Package: cron Version: 3.0pl1-124.1 systemd was forced on me yesterday - and while it took me 4 hours to get system back to boot (that's another story), I thought it is reasonably stable to survive during night.
But today when I came to work, I found that my system crashed due to /tmp being full. Investigation revealed that under systemd cron - and everything spawned by cron - ignores SIGPIPE. So cron script doing: while true; do echo "X=`getRandomNumber`"; done | process10NumbersAndQuit now emits gazillion of: renew.sh: line 5: echo: write error: Broken pipe and never stops, which end up in /tmp in file where cron redirected stderr... Can you ensure that cron scripts are run in same environment under sysvinit and systemd? I know this script got broken in quite fatal way, but I have hundreds of other, and I did not find any cron option to not ignore SIGPIPE when starting children, and in shell it seems impossible to revert SIGPIPE to default handling if it was ignored when shell started. For now I've changed systemd to use cron's initscript rather than cron.service - that seems to do the trick. You can check it by creating script: while true; do echo x; done | head -1 When run under sysvinit started cron, it nicely stops after printing one 'x'. Under systemd started cron it generates infinite amount of stuff on stderr. Thanks, Petr -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

