相关疑难解决方法(0)

为什么我们需要 fork 来创建新进程?

在Unix中,每当我们想要创建一个新进程时,我们会fork当前进程,创建一个与父进程完全相同的新子进程;然后我们执行 exec 系统调用以将来自父进程的所有数据替换为新进程的所有数据。

为什么我们首先创建父进程的副本而不是直接创建新进程?

process fork architecture

115
推荐指数
4
解决办法
6万
查看次数

将程序作为守护程序运行和使用“&”将其分叉到后台有什么区别?

在基于 Unix 的系统上部署服务时,从系统管理员的角度来看有哪些实际差异?

shell process fork background-process daemon

52
推荐指数
4
解决办法
2万
查看次数

fork 和 exec 是如何工作的?

我没有太多经验,只是试图参与他们如何从用户级别解释到硬件的过程。

因此,当从 shell 触发命令时,fork()继承它exec()的子进程并将子进程加载到内存中并执行。

  1. 如果子进程包含了父进程(也就是原始进程)的所有属性,那么这个子进程需要什么?原始进程也可能已加载到内存中。
  2. 这个forkexec概念是否适用于 UNIX 中的所有可执行程序?也喜欢shell脚本还是只喜欢命令?它是否也适用于 shell 内置命令?
  3. 如果我将执行命令/脚本,何时使用复制概念?

很抱歉一次问了很多问题,但是当我想到任何命令执行时,所有这些问题都会立刻浮现在我的脑海中。

fork exec

17
推荐指数
3
解决办法
2万
查看次数

fork() 和 exec() 混淆

当我们对当前进程进行 fork 时,我们作为父进程的进程会生成具有相同特征但进程 ID 不同的子进程。所以在那之后,当我们在我们的子进程中执行 exec() 时,进程停止执行,并且我们在停止的子进程中执行的程序现在有了自己的进程。

这与我们运行应用程序时每个应用程序都有自己的进程和 PID 时不一样吗?

linux debian fork exec

3
推荐指数
1
解决办法
5027
查看次数

标签 统计

fork ×4

exec ×2

process ×2

architecture ×1

background-process ×1

daemon ×1

debian ×1

linux ×1

shell ×1