Just switched from bash to zsh.
In bash, background tasks continue running when the shell exits. For example here, dolphin
continues running after the exit
:
$ dolphin .
^Z
[1]+ Stopped dolphin .
$ bg
[1]+ dolphin . &
$ exit
This is what I want as the default behavior.
In contrast, zsh's behavior is to warn about running jobs on exit
, then close them if you exit
again. For example here, dolphin
is closed when the second exit
-command actually exits the shell:
% dolphin .
^Z
zsh: suspended dolphin .
% bg
[1] + continued dolphin .
% exit
zsh: you have running jobs.
% exit
How do I make zsh's default behavior here like bash's?
Start the program with &!
:
dolphin &!
The &!
(or equivalently, &|
) is a zsh-specific shortcut to both background and disown the process, such that exiting the shell will leave it running.