Apologies, my earlier email, item 2, pointed to emptyenv as the cause of zombie processes on FreeBSD 12.2S, actually it is due to background.
# execlineb -Pc 'background { echo hello } pipeline { ps -axw } grep defunct' hello 30144 0 Z+ 0:00.00 <defunct> while the following tests both foreground and emptyenv # execlineb -Pc 'emptyenv foreground { echo hello } pipeline { /bin/ps -axw } /usr/bin/grep defunct' hello # Software revision level (as available in the FreeBSD ports system) execline-2.6.0.1 s6-2.9.1.0 s6-rc-0.5.1.2 skalibs-2.9.2.1 Further detail: # execlineb -Pc 'emptyenv background { echo hello } pipeline { /bin/ps -axwwdo pid,ppid,stat,command } /usr/bin/grep -B1 "defunct"' hello 71212 70760 Ss | | `-- -csh (csh) 16885 71212 S+ | | `-- /usr/bin/grep -B1 defunct 17052 16885 Z+ | | |-- <defunct> I've also placed a ktrace and kdump of execlineb -Pc 'ktrace -f /tmp/bgnd.kt /usr/local/bin/background { /bin/ps } echo a' here http://www.heuristicsystems.com/s6/