如何在 Bash 脚本中使用 vfork

如何在 Bash 脚本中使用 vfork

如果我们想fork在 bash 脚本中(甚至在命令行中)执行任何操作,我们可以简单地用 $() 或反引号将其括起来。例如;

echo $(ls)- 这将分叉当前环境并在(分叉的)子 shell 中运行 ls

我们如何使用vfork(http://man7.org/linux/man-pages/man2/vfork.2.html)而不是标准分叉功能?

答案1

在 bash 源代码中执行grep -Ri vfork没有找到任何匹配,因此无法直接从 bash 使用 vfork。

如果您只是想要调用子进程并阻止父进程,那么您的子 shell 示例已经做到了这一点。否则,echo最多只能得到不完整的结果。

您还可以使用 在后台运行命令,&然后使用wait让父进程阻塞直到子进程完成。

相关内容