simplify default rejection
close pipe anyway
flush before calling exec