如何在不终止父 shell 的情况下创建孤儿进程?

Tim*_*Tim 6 bash process daemon

在 bash shell 中,为了创建nohup mycommand &孤立进程,我在运行命令后关闭了 bash shell。是否可以在不终止父 shell 的情况下进行?我想知道是否有一些类似于系统调用 fork() 和 exit() 的 shell 命令用于守护进程。

Gil*_*il' 10

要创建孤儿进程,父进程必须死亡。如果你不想你的壳死掉,那么壳不能是孤儿的父级。最简单的方法是让 shell fork 成为一个子进程,然后 fork 将成为孤儿的进程。这个双叉是守护进程的启动方式,如维基百科文章介绍中所述

在 shell 中,您已经知道如何创建子进程:使用&. 要有一个子进程,它是同一个 shell 的一个分支,并让它依次分支一个后台进程,你只需要让解析器理解你。

{ nohup mycommand & } &
Run Code Online (Sandbox Code Playgroud)