disown [ job … ]
job … &|
job … &!
Remove the specified jobs from the job table; the shell will no longer report their status, and will not complain if you try to exit an interactive shell with them running or stopped. If no job is specified, disown the current job. If the jobs are currently stopped and the AUTO_CONTINUE option is not set, a warning is printed containing information about how to make them running after they have been disowned. If one of the latter two forms is used, the jobs will automatically be made running, independent of the setting of the AUTO_CONTINUE option.source: https://linux.die.net/man/1/zshbuiltins
$ VBoxHeadless -s freebsd &!
$ VBoxHeadless -s freebsd &|
There are times when I have to manually startup virtual machines remotely – usually a combination of VirtualBox on macOS and a FreeBSD guest.
In the example above, the virtual machine is named “freebsd”. Using a plain “&” within a zsh terminal seems to kill the process once you log off your SSH session. The extra ! or | makes the process remain in the background.