当前位置: 首页 > 面试题库 >

Bash命令:(){:|:&} ;:将产生进程,使内核死亡。你能解释一下语法吗?

桓深
2023-03-14
问题内容

我查看了此页面,但无法理解其工作原理。

此命令“以指数方式生成子流程,直到您的框被锁定为止”。

但为什么?我不太了解的是冒号。

user@host$ :(){ :|:& };:


问题答案:

定义了一个称为的函数:,该函数 两次调用自身(代码:): | :。它在后台(&)中执行此操作。完成;功能定义并:启动功能后。

因此,:的每个实例都开始两个新的:,依此类推…就像进程的二进制树…

用纯C编写,即:

fork();
fork();


 类似资料:
  • 问题内容: 我有一个程序生成并与CPU繁重,不稳定的进程通信,而不是由我创建的。如果我的应用程序崩溃或被杀死,我也希望子进程也被杀死,因此用户不必跟踪它们并手动杀死它们。 我知道以前已经讨论过该主题,但是我已经尝试了所有描述的方法,但似乎没有一种方法能够经受住测试的考验。 我知道这是有可能的,因为终端一直在这样做。如果我在终端中运行某些程序并杀死该终端,则这些东西总是会死掉。 我试过了,双叉和。不

  • 使用Ubuntu 13.10和运行节点v0.10.0。我正在使用pty.jsv0.2.4生成一个程序(需要在交互式环境中运行)。该程序是用C编写的,并分叉子进程本身。 我已经编写了一个非常精简的C程序版本(我称之为“forktest”),它具有产生此问题所需的最小值,并包含以下内容: 我还整理了一个最小节点脚本,用coffeescript(test.coffee)编写,它运行程序,如下所示: 运行

  • 我正在使用连接到web服务。我知道如何使用,但我想了解它是如何工作的。基本上,我想知道以下几点: 在哪一点尝试建立到给定URL的连接

  • 群集环境: Storm0.9.2 Zookeeper 3.4.6 Ubuntu 13.10

  • 我正在开发一个应用程序,它作为服务运行,并等待消息。在我查看了日志之后,我发现Android非常经常会杀死和重启许多进程!这不仅发生在我的app上,其他很多服务也是一样的。 我看不出这有什么原因,我的设备有足够的内存。我用运行Android4.0.4的索尼Xperia S进行测试。这是正常还是bug? 下面是日志的一部分,向你展示我的意思: 02-04 15:02:38.791 320 332 I

  • 问题内容: 在不让父进程等待子进程被杀死的情况下,我如何跟踪子进程的死亡? 我正在尝试一个客户端-服务器方案,其中服务器从客户端接受连接,并为它接受的每个连接派生一个新进程。 我忽略了SIGCHLD信号以防止僵尸创建。 上述情况下的问题是,如果子进程在函数中被杀死,则全局变量不会递减。 注意: 我正在寻找不使用SIGCHLD信号的解决方案…如果可能 问题答案: 通常,您编写一个调用pid 的处理程