在 bsh shell 脚本中派生一个进程

在 bsh shell 脚本中派生一个进程

我有一个简单的 shell 脚本

#!/bin/bash

sh -c "sleep 60" &
exec sleep 120

在使用pstree命令时,我发现了类似

`-sleep(11681)---sleep(11682)

第一个睡眠是由于sh -c,所以即使我在后台执行了那个睡眠,它现在也是我的exec睡眠的父级。

问题:如何分离第一个睡眠并使其pstree具有类似

 -sleep(11681)
 -sleep(11682)

答案1

第一个 sleep 已经分离。发生的事情是 是sleep 60运行脚本的 shell 的父级,然后 用exec替换该 shell sleep 120,因此 yoursleep 120现在是 your 的父级sleep 60。要使它们在输出中处于同一级别pstree,只需将 设置为背景,sleep 120就像您对 所做的那样,sleep 60而不是exec'ing 它。

答案2

睡眠 60 分钟,睡眠 120 分钟,然后等待

相关内容