Skip to content

Instantly share code, notes, and snippets.

@lucaslugao
Created August 24, 2021 12:32
Show Gist options
  • Save lucaslugao/c7981fb921e0e2839e04d8317f9fafcf to your computer and use it in GitHub Desktop.
Save lucaslugao/c7981fb921e0e2839e04d8317f9fafcf to your computer and use it in GitHub Desktop.

Job non-inheritance

Code that produced this report:

function test() {
    echo "## $(pacman -Q $1)"
    echo "\`\`\`shell"
    local pid="\$\$" && [[ $1 == "fish" ]] && pid="\$fish_pid"
    local cmd="$1 -c 'sleep inf & pstree -p $pid; jobs -l; echo ""; exec $1 -c \"sleep inf & pstree -p $pid; jobs -l\"'"
    echo "\$ ${cmd}"
    echo "${cmd}" | bash 2>&1
    echo "\`\`\`"
}

echo "# Job non-inheritance"
echo "## Code that produced this report:"
echo -e "\`\`\`bash
$(cat $0)
\`\`\`"

for shell in dash bash zsh ksh tcsh fish; do
    test $shell
done

dash 0.5.11.4-1

$ dash -c 'sleep inf & pstree -p $$; jobs -l; echo ; exec dash -c "sleep inf & pstree -p $$; jobs -l"'
dash(45407)-+-pstree(45409)
            `-sleep(45408)
[1] + 45408 Running              

dash(45407)-+-pstree(45411)
            |-sleep(45408)
            `-sleep(45410)
[1] + 45410 Running              

bash 5.1.008-1

$ bash -c 'sleep inf & pstree -p $$; jobs -l; echo ; exec bash -c "sleep inf & pstree -p $$; jobs -l"'
bash(45415)-+-pstree(45417)
            `-sleep(45416)
[1]+ 45416 Running                 sleep inf &

bash(45415)-+-pstree(45419)
            |-sleep(45416)
            `-sleep(45418)
[1]+ 45418 Running                 sleep inf &

zsh 5.8-1

$ zsh -c 'sleep inf & pstree -p $$; jobs -l; echo ; exec zsh -c "sleep inf & pstree -p $$; jobs -l"'
zsh(45423)-+-pstree(45425)
           `-sleep(45424)
[1]  + 45424 running    sleep inf

zsh(45423)-+-pstree(45427)
           |-sleep(45424)
           `-sleep(45426)
[1]  + 45426 running    sleep inf

ksh 2020.0.0-2

$ ksh -c 'sleep inf & pstree -p $$; jobs -l; echo ; exec ksh -c "sleep inf & pstree -p $$; jobs -l"'
ksh(45431)-+-ksh(45432)
           `-pstree(45433)
[1] + 45432	 Running                 <command unknown>

ksh(45431)-+-ksh(45432)
           |-ksh(45434)
           `-pstree(45435)
[1] + 45434	 Running                 <command unknown>

tcsh 6.22.04-1

$ tcsh -c 'sleep inf & pstree -p $$; jobs -l; echo ; exec tcsh -c "sleep inf & pstree -p $$; jobs -l"'
[1] 45471
tcsh(45439)-+-pstree(45472)
            `-sleep(45471)
[1]  + 45471 Running                       sleep inf

[1] 45479
tcsh(45439)-+-pstree(45480)
            |-sleep(45471)
            `-sleep(45479)
[1]  + 45479 Running                       sleep inf

fish 3.3.1-1

$ fish -c 'sleep inf & pstree -p $fish_pid; jobs -l; echo ; exec fish -c "sleep inf & pstree -p $fish_pid; jobs -l"'
fish(45484)-+-pstree(45488)
            `-sleep(45487)
Job	Group	CPU	State	Command
1	45402	0%	running	sleep inf &

fish(45484)-+-pstree(45492)
            |-sleep(45487)
            `-sleep(45491)
Job	Group	CPU	State	Command
1	45402	0%	running	sleep inf &
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment