function suspend --description 'Suspend the current shell.' set -l options 'h/help' 'f/force' argparse -n suspend --max-args=1 $options -- $argv or return if set -q _flag_help __fish_print_help suspend return 0 end if not set -q _flag_force and status is-login and status is-interactive echo 2>&1 'Refusing to suspend interactive login shell.' echo 2>&1 'Use --force to override. This might hang your terminal.' return 1 end if status is-interactive echo -ns 'Suspending ' $fish_pid ': run' echo -n (set_color --bold) 'kill -CONT' $fish_pid (set_color normal) echo 'from another terminal to resume' end # XXX always causes a zombie until one fg's when we do this: kill -STOP $fish_pid end