Could someone please explain the output below? I have the following shell script to inspect the PIDs of child processes:
echo ">>> sleep" echo " > parent: $$" /bin/sleep 1 & echo " > child: $!" ps -o "pid,ppid,command" wait echo ">>> sleep in subshell" echo " > parent: $$" ( /bin/sleep 1 ) & echo " > child: $!" ps -o "pid,ppid,command" wait echo ">>> sleep twice in subshell" echo " > parent: $$" ( /bin/sleep 1; /bin/sleep 2 ) & echo " > child: $!" ps -o "pid,ppid,command" wait If I run this script using /bin/sh, I get the following output: >>> sleep > parent: 13544 > child: 4947 PID PPID COMMAND 139 13544 ps -o pid,ppid,command 4947 13544 /bin/sleep 1 6189 13986 -ksh 13544 6189 /bin/sh t.sh >>> sleep in subshell > parent: 13544 > child: 14447 PID PPID COMMAND 4630 13544 ps -o pid,ppid,command 6189 13986 -ksh 13544 6189 /bin/sh t.sh 14447 13544 /bin/sh t.sh 17445 14447 /bin/sleep 1 >>> sleep twice in subshell > parent: 13544 > child: 1487 PID PPID COMMAND 1487 13544 /bin/sh t.sh 1548 3239 /bin/sleep 1 3239 1487 /bin/sh t.sh 6189 13986 -ksh 13544 6189 /bin/sh t.sh 24087 13544 ps -o pid,ppid,command In the "sleep twice in subshell" (3rd) case, why is there another subshell process with PID 3239? The process chain looks like: /bin/sh t.sh > /bin/sh t.sh > /bin/sh t.sh > /bin/sleep 1 If I run this script using /bin/ksh, I get the following output: >>> sleep > parent: 9269 > child: 5229 PID PPID COMMAND 544 9269 ps -o pid,ppid,command 5229 9269 /bin/sleep 1 6189 13986 -ksh 9269 6189 /bin/ksh t.sh >>> sleep in subshell > parent: 9269 > child: 5139 PID PPID COMMAND 5139 9269 /bin/sleep 1 6189 13986 -ksh 9269 6189 /bin/ksh t.sh 14597 9269 ps -o pid,ppid,command >>> sleep twice in subshell > parent: 9269 > child: 22025 PID PPID COMMAND 5997 22025 /bin/sleep 1 6189 13986 -ksh 9269 6189 /bin/ksh t.sh 16165 9269 ps -o pid,ppid,command 22025 9269 /bin/ksh t.sh In the "sleep in subshell" (2nd) case, why is there no subshell? /bin/sh t.sh > /bin/sleep 1 I checked with bash-4.4.012 and zsh-5.1 and their output matches with /bin/ksh. This is on NetBSD-7.0.1. Regards, Johnny C. Lam j...@netbsd.org