如何运行一堆分层虚拟 shell 进程(另一个进程的进程等)?

如何运行一堆分层虚拟 shell 进程(另一个进程的进程等)?

我想运行多个进程,其中每个进程都运行另一个进程,因此它将创建一个很长的进程分支。

我试过了:

$ bash -c '(bash -c "sleep 20"); sleep 20' &
$ pstree $(pgrep -fn bash)

它会创建父进程和一个子进程,但是有没有什么技巧或更简单的方法可以生成进一步的 10-20 个进程,而无需过多地处理语法?

答案1

您可以创建递归脚本。例如在文件中/tmp/run

#!/bin/bash
depth=${1:-5}
f(){
 let depth--
 if [ $depth -gt 0 ]
 then $0 $depth
 else sleep 10
 fi
}
f

然后chmod +x /tmp/run/tmp/run 10

相关内容